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 ConfigureAwaitOptions.SuppressThrowing s Task<TResult> |
| Kategorie | Využití |
| Oprava, která může být destruktivní nebo nedestruktivní | Nezlomitelný |
| Povoleno ve výchozím nastavení v .NET 10 | Jako upozornění |
| Příslušné jazyky | C# a Visual Basic |
Příčina
Hodnota ConfigureAwaitOptions.SuppressThrowing je předána Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).
Popis pravidla
Obecné Task<TResult> nepodporuje možnost ConfigureAwaitOptions.SuppressThrowing, protože to může vést k vrácení neplatného TResult. 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í
Přetypujte Task<TResult> na jiný než obecný Task před voláním 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.