Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
CA2261: Använd
| Property | Värde |
|---|---|
| Regel-ID | CA2261 |
| Title | Använd inte ConfigureAwaitOptions.SuppressThrowing med Task<TResult> |
| Kategori | Användning |
| Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
| Aktiverad som standard i .NET 10 | Som varning |
Orsak
ConfigureAwaitOptions.SuppressThrowing Värdet skickas till Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).
Regelbeskrivning
Alternativet ConfigureAwaitOptions.SuppressThrowing stöds inte av den generiska Task<TResult>, eftersom det kan leda till att ett ogiltigt TResultreturneras. Den här regeln flaggar användningen av SuppressThrowing med Task<TResult> för att identifiera felet vid bygget i stället för under körning.
Så här åtgärdar du överträdelser
Casta Task<TResult> till en icke-generisk Task innan du anropar ConfigureAwait(ConfigureAwaitOptions).
Exempel
Följande kodfragment visar ett brott mot CA2261:
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Följande kodfragment visar korrigeringen:
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
När fel ska ignoreras
Du bör inte ignorera varningar från den här regeln. Om uppgiften är felslagen eller avbruten kommer TResult att vara ogiltig och orsaka körningsfel.