Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
CA2261: Jangan gunakan
| Properti | Nilai |
|---|---|
| ID Aturan | CA2261 |
| Judul | Jangan gunakan ConfigureAwaitOptions.SuppressThrowing dengan Task<TResult> |
| Golongan | Penggunaan |
| Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
| Diaktifkan secara default di .NET 10 | Sebagai peringatan |
Penyebab
Nilai ConfigureAwaitOptions.SuppressThrowing diteruskan ke Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).
Deskripsi aturan
Opsi ConfigureAwaitOptions.SuppressThrowing ini tidak didukung oleh generik Task<TResult>, karena mungkin menyebabkan pengembalian yang tidak valid TResult. Aturan ini menandai penggunaan SuppressThrowing dengan Task<TResult> untuk menampilkan kesalahan pada waktu kompilasi daripada pada waktu runtime.
Cara memperbaiki pelanggaran
Transmisikan Task<TResult> ke non-generik Task sebelum memanggil ConfigureAwait(ConfigureAwaitOptions).
Contoh
Cuplikan kode berikut menunjukkan pelanggaran CA2261:
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Cuplikan kode berikut menunjukkan perbaikan:
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Kapan harus menyembunyikan kesalahan
Anda tidak boleh menyembunyikan peringatan dari aturan ini. Jika tugas salah atau dibatalkan, TResult akan tidak valid dan menyebabkan kesalahan runtime.