Not
Å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 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.