Bagikan melalui


Peringatan CA2247: Argumen ke konstruktor TaskCompletionSource harus berupa nilai TaskCreationOptions

Aturan penganalisis kode .NET CA2247 diaktifkan, secara default, mulai dari .NET 5. Ini menghasilkan peringatan build untuk panggilan ke TaskCompletionSource<TResult> konstruktor yang meneruskan argumen jenis TaskContinuationOptions.

Deskripsi perubahan

Mulai dari .NET 5, .NET SDK menyertakan penganalisis kode sumber .NET. Beberapa aturan ini diaktifkan, secara default, termasuk CA2247. Jika proyek Anda berisi kode yang melanggar aturan ini dan dikonfigurasi untuk memperlakukan peringatan sebagai kesalahan, perubahan ini dapat merusak build Anda.

Aturan CA2247 menemukan panggilan ke TaskCompletionSource<TResult> konstruktor yang meneruskan argumen jenis TaskContinuationOptions. Jenis memiliki TaskCompletionSource<TResult> konstruktor yang menerima TaskCreationOptions nilai, dan konstruktor lain yang menerima Object. Jika Anda secara tidak sengaja meneruskan TaskContinuationOptions nilai alih-alih TaskCreationOptions nilai, konstruktor dengan Object parameter dipanggil pada waktu proses. Kode Anda akan mengkompilasi dan menjalankan tetapi tidak akan memiliki perilaku yang dimaksudkan.

Versi yang diperkenalkan

5.0

  • TaskContinuationOptions Ganti argumen dengan nilai yang TaskCreationOptions sesuai. Jangan menekan peringatan ini, karena hampir selalu menyoroti bug dalam kode Anda. Untuk informasi selengkapnya, lihat CA2247.

  • Untuk menonaktifkan analisis kode sepenuhnya, atur EnableNETAnalyzers ke false dalam file proyek Anda. Untuk informasi selengkapnya, lihat EnableNETAnalyzers.

API yang Terpengaruh