Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
CA2261: Verwenden Sie
| Eigenschaft | Wert |
|---|---|
| Regel-ID | CA2261 |
| Titel | Verwenden Sie ConfigureAwaitOptions.SuppressThrowing nicht mit Task<TResult> |
| Kategorie | Verwendung |
| Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
| Standardmäßig in .NET 10 aktiviert | Als Warnung |
Ursache
Ein Wert von ConfigureAwaitOptions.SuppressThrowing wird an Task<TResult>.ConfigureAwait(ConfigureAwaitOptions) übergeben.
Regelbeschreibung
Die ConfigureAwaitOptions.SuppressThrowing-Option wird von der generischen Task<TResult> nicht unterstützt, da dies zu einer ungültigen TResult-Wiedergabe führen kann. Diese Regel kennzeichnet die Verwendung von SuppressThrowing mit Task<TResult>, um den Fehler zur Buildzeit anzuzeigen, statt zur Laufzeit.
Behandeln von Verstößen
Wandeln Sie die Task<TResult> in eine nicht-generische Task um, bevor Sie ConfigureAwait(ConfigureAwaitOptions) aufrufen.
Beispiel
Der folgende Codeschnipsel zeigt einen Verstoß gegen CA2261:
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Der folgende Codeausschnitt zeigt die Korrektur:
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Fälle für die Unterdrückung von Warnungen
Sie sollten Warnungen vor dieser Regel nicht unterdrücken. Wenn die Aufgabe fehlerhaft oder abgebrochen wird, ist TResult ungültig und verursacht Laufzeitfehler.