Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 9 | 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 visa felet vid byggtid i stället för körningstid.
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 har felats eller avbrutits TResult är den ogiltig och orsakar körningsfel.