await, - async -.
await , , .
await Blah(); var blahTask = Blah(); await blahTask;
, , await ?
Task<int> xTask = SomeOtherFunction();
int x = await xTask;
: finally , , - SynchronizationContext, SynchronizationContext () , . , , SynchronizationContext, , SynchronizationContext , (, SynchronizationContext.Current ...)
, , , . ( - ...)
, await .
, " , await , await", ConfigureAwait(false) ;
async Task SomeOtherFunction() {
await Blah().ConfigureAwait(false);
}
, " , await " - - , , await, , ContinueWith - Task, .
Task SomeOtherFunction() {
return Blah()
.ContinueWith(blahTask => WeShouldBeInAThreadPoolThread(),
TaskScheduler.Default);
}