Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
CA2261:
| Özellik | Değer |
|---|---|
| Kural Kimliği | CA2261 |
| Başlık |
ConfigureAwaitOptions.SuppressThrowing ile Task<TResult> kullanmayın |
| Kategori | Kullanım |
| Düzeltme bozucu ya da bozmayan olabilir | Kesintisiz |
| .NET 10'da varsayılan olarak etkin | Uyarı olarak |
| Geçerli diller | C# ve Visual Basic |
Neden
Bir ConfigureAwaitOptions.SuppressThrowing değeri Task<TResult>.ConfigureAwait(ConfigureAwaitOptions)'ye geçirilir.
Kural açıklaması
Bu ConfigureAwaitOptions.SuppressThrowing seçenek genel Task<TResult> tarafından desteklenmez çünkü bu geçersiz bir TResult'nin döndürülmesine neden olabilir. Bu kural, çalışma zamanı yerine derleme zamanında hatayı gösterebilmek için SuppressThrowing ve Task<TResult> kullanımını işaretler.
İhlalleri düzeltme
ConfigureAwait(ConfigureAwaitOptions) çağrısından önce, Task<TResult> öğesini genel olmayan bir Task türüne dönüştürün.
Örnek
Aşağıdaki kod parçacığı CA2261 ihlalini gösterir:
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Aşağıdaki kod parçacığı düzeltmeyi gösterir:
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Hatalar ne zaman bastırılacak?
Bu kuraldan gelen uyarıları gizlememelisiniz. Görev hatalıysa veya iptal edildiyse, TResult geçersiz olur ve çalışma zamanı hatalarının nedeni olur.