CA2261: Ne használja ConfigureAwaitOptions.SuppressThrowing elemet a Task<TResult> elemmel

Tulajdonság Érték
Szabályazonosító CA2261
Cím Ne használja ConfigureAwaitOptions.SuppressThrowing együtt Task<TResult>-vel
Kategória Használat
A javítás romboló vagy nem romboló Nem törhető
Alapértelmezés szerint engedélyezve a .NET 10-ben Figyelmeztetésként
Alkalmazandó nyelvek C# és Visual Basic

Ok

A függvény ConfigureAwaitOptions.SuppressThrowing egy értéket ad át a függvénynek Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).

Szabály leírása

A ConfigureAwaitOptions.SuppressThrowing beállítást az általános Task<TResult>nem támogatja, mivel ez érvénytelen TResulteredményhez vezethet. Ez a szabály jelzi a SuppressThrowing és Task<TResult> használatát, és a hibát a buildelési időpontban, nem pedig a futásidőben tárja fel.

Szabálysértések kijavítása

A Task<TResult> elemet alakítsa át nem generikus Task típusra a ConfigureAwait(ConfigureAwaitOptions) hívása előtt.

Példa

A következő kódrészlet a CA2261 megsértését mutatja be:

Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);

A következő kódrészlet a javítást mutatja:

Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);

Mikor kell letiltani a hibákat?

Ne nyomja el ennek a szabálynak a figyelmeztetéseit. Ha a feladat hibás vagy megszakítva, a TResult értéktelen lesz, ami futásidejű hibákat okoz.