Use MyTask.ConfigureAwait(false) unless you really need Synchronization Context

janky.pngIn your Xamarin App nearly all work is done in another task. This helps ensure the UI thread is free to deliver a smooth non-janky experience to the user.

In the vast majority of tasks, you won’t need to return to the original Syncronization Context.

Because the compiler isn’t smart enough to ignore returning to the original context, you should add ConfigureAwait(false) to your tasks :

async Task<MyModel> GetModel()
{
    return await repositoryTask.ConfigureAwait(false);
}

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s