I understand that Tasks are just an abstraction for asynchronous execution. Behind the scenes, the runtime still has to develop ways to make our code run asynchronously. I understand there are different implementations of that depending on the type of application running our code: In asp.net, for example, it seems it creates one thread per task with has an HTTP request associated with it. On the other hand, console apps just run tasks in a thread pool (correct if I have the wrong understanding, please).
I understand that those different implementations are the Synchronization context. The changes that I am wrong or too vague are high. I would like to understand the various SynchronizationContext differences between different applications.
I am ashamed to say I have been working with .net for many years, but I still don't understand SynchronizationContext. I also have a feeling that lots of people don't do either. I read tons and tons of articles and official documentation, but nothing clicked. I read most of the articles about the subject, but I still have difficulties with the matter.