C#


ROSLYN.RELIABILITY.CA2007 : Consider calling ConfigureAwait on the awaited task (C#)

See Roslyn-Detected C# Warning Classes for more information.

Summary

When an asynchronous method awaits a Task directly, continuation occurs in the same thread that created the task. Consider calling Task.ConfigureAwait(Boolean) to signal your intention for continuation. Call ConfigureAwait(false) on the task to schedule continuations to the thread pool, thereby avoiding a deadlock on the UI thread. Passing false is a good option for app-independent libraries. Calling ConfigureAwait(true) on the task has the same behavior as not explicitly calling ConfigureAwait. By explicitly calling this method, you're letting readers know you intentionally want to perform the continuation on the original synchronization context.

This check corresponds to Roslyn rule CA2007. For full rule details, see the Microsoft website: CA2007.

Properties

Class Name Consider calling ConfigureAwait on the awaited task (C#)
Significance reliability
Mnemonic ROSLYN.RELIABILITY.CA2007
Categories None
Availability Available for C# only.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Consider calling ConfigureAwait on the awaited task (C#)"

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.