नोट
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप साइन इन करने या निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
CA2261: Do not use
| Property | Value |
|---|---|
| Rule ID | CA2261 |
| Title | Do not use ConfigureAwaitOptions.SuppressThrowing with Task<TResult> |
| Category | Usage |
| Fix is breaking or non-breaking | Non-breaking |
| Enabled by default in .NET 10 | As warning |
Cause
A value of ConfigureAwaitOptions.SuppressThrowing is passed to Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).
Rule description
The ConfigureAwaitOptions.SuppressThrowing option isn't supported by the generic Task<TResult>, since that might lead to returning an invalid TResult. This rule flags the use of SuppressThrowing with Task<TResult> to surface the error at build time rather than runtime.
How to fix violations
Cast the Task<TResult> to a non-generic Task before calling ConfigureAwait(ConfigureAwaitOptions).
Example
The following code snippet shows a violation of CA2261:
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
The following code snippet shows the fix:
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
When to suppress errors
You shouldn't suppress warnings from this rule. If the task is faulted or canceled, TResult will be invalid and cause runtime errors.