I'm trying to get familiar with TPL and using it in mvc. All looks ok in all guides (mark action as async, use await => profit!) but I don't really understand it.
As I understand chain of calls looks like this: client sends http request → web server gets request → mvc action handler finds controller and action using routing rules and executes it → action writes result in response.
BUT: What is kind of magic in router wait for action? Who (and how?) handles the first async method in this chain?