Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
CA2261: Nepoužívejte
| Vlastnost | Hodnota |
|---|---|
| ID pravidla | CA2261 |
| Název | Nepoužívejte s ConfigureAwaitOptions.SuppressThrowingTask<TResult> |
| Kategorie | Využití |
| Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
| Povoleno ve výchozím nastavení v .NET 10 | Jako upozornění |
Příčina
Hodnota ConfigureAwaitOptions.SuppressThrowing je předána Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).
Popis pravidla
Obecná ConfigureAwaitOptions.SuppressThrowing možnost nepodporuje Task<TResult>, protože to může vést k vrácení neplatného TResultkódu . Toto pravidlo označuje použití SuppressThrowing spolu s Task<TResult> k identifikaci chyby během doby sestavení namísto doby běhu.
Jak opravit porušení
Task<TResult> Před voláním Taskpřetypujte na jiný než obecný ConfigureAwait(ConfigureAwaitOptions) .
Příklad
Následující fragment kódu ukazuje porušení ca2261:
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Následující fragment kódu ukazuje opravu:
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Kdy potlačit chyby
Upozornění z tohoto pravidla byste neměli potlačit. Pokud je úloha chybná nebo zrušená, TResult bude neplatná a způsobí chyby za běhu.