The following are the diagnostic analyzers installed with the Microsoft.VisualStudio.Threading.Analyzers NuGet package.
ID | Title | Severity | Supports | Default diagnostic severity |
---|---|---|---|---|
VSTHRD001 | Avoid legacy thread switching methods | Critical | 1st rule | 🔡 Warning |
VSTHRD002 | Avoid problematic synchronous waits | Critical | 2nd rule | Warning |
VSTHRD003 | Avoid awaiting foreign Tasks | Critical | 3rd rule | Warning |
VSTHRD004 | Await SwitchToMainThreadAsync | Critical | 1st rule | Error |
VSTHRD010 | Invoke single-threaded types on Main thread | Critical | 1st rule | Warning |
VSTHRD011 | Use AsyncLazy<T> |
Critical | 3rd rule | Error |
VSTHRD012 | Provide JoinableTaskFactory where allowed | Critical | All rules | Warning |
VSTHRD100 | Avoid async void methods |
Advisory | Warning | |
VSTHRD101 | Avoid unsupported async delegates | Advisory | VSTHRD100 | Warning |
VSTHRD102 | Implement internal logic asynchronously | Advisory | 2nd rule | Info |
VSTHRD103 | Call async methods when in an async method | Advisory | Warning | |
VSTHRD104 | Offer async option | Advisory | Info | |
VSTHRD105 | Avoid method overloads that assume TaskScheduler.Current |
Advisory | Warning | |
VSTHRD106 | Use InvokeAsync to raise async events |
Advisory | Warning | |
VSTHRD107 | Await Task within using expression | Advisory | Error | |
VSTHRD108 | Assert thread affinity unconditionally | Advisory | 1st rule, VSTHRD010 | Warning |
VSTHRD109 | Switch instead of assert in async methods | Advisory | 1st rule | Error |
VSTHRD110 | Observe result of async calls | Advisory | Warning | |
VSTHRD111 | Use .ConfigureAwait(bool) |
Advisory | Hidden | |
VSTHRD112 | Implement System.IAsyncDisposable |
Advisory | Info | |
VSTHRD113 | Check for System.IAsyncDisposable |
Advisory | Info | |
VSTHRD114 | Avoid returning null from a Task -returning method. |
Advisory | Warning | |
VSTHRD200 | Use Async naming convention |
Guideline | VSTHRD103 | Warning |
Severity | IDs | Analyzer catches... |
---|---|---|
Critical | 1-99 | Code issues that often result in deadlocks |
Advisory | 100-199 | Code that may perform differently than intended or lead to occasional deadlocks |
Guideline | 200-299 | Code that deviates from best practices and may limit the benefits of other analyzers |
Icon | Meaning |
---|---|
🔡 | The analyzer only produces diagnostics when configured. |
Some analyzers' behavior can be configured. See our configuration topic for more information.