I\'m calling an async method within my console application. I don\'t want the app to quit shortly after it starts, i.e. before the awaitable tasks complete. It seems like I ca
It's not required; it's just my preference.
You can synchronously block on a task within Main
(using Wait
/Result
/WaitAll
). The semantics are slightly different; in particular, if the async code fails, then Wait
/Result
/WaitAll
will wrap the exception in an AggregateException
, while AsyncContext
does not.
Also, AsyncContext
treats the main thread specially; instead of sending continuations to the thread pool, it will send them back to that main thread (by default; you can always use ConfigureAwait(false)
to avoid this). I find this useful if I'm writing a "proof of concept" console app, because AsyncContext
behaves very similarly to the UI contexts.
But at the end of the day, it's just a matter of preference.