警告 CA2247:TaskCompletionSource コンストラクターの引数は、TaskCreationOptions 値にする必要があります
.NET コード アナライザー ルール CA2247 は、.NET 5 以降では既定で有効になっています。 TaskContinuationOptions 型の引数を渡す TaskCompletionSource<TResult> コンストラクターへの呼び出しに対して、ビルドの警告が生成されます。
変更内容
.NET 5 以降、.NET SDK には .NET ソース コード アナライザーが含まれています。 これらのルールのいくつかは、CA2247 を含め、既定で有効になっています。 このルールに違反し、警告をエラーとして扱うように構成されているコードがプロジェクトに含まれている場合、この変更によってビルドが破損する可能性があります。
ルール CA2247 によって、TaskContinuationOptions 型の引数を渡す TaskCompletionSource<TResult> コンストラクターへの呼び出しが検索されます。 TaskCompletionSource<TResult> 型には、TaskCreationOptions 値を受け入れるコンストラクターと、Object を受け入れる別のコンストラクターがあります。 TaskCreationOptions 値ではなく TaskContinuationOptions 値を誤って渡した場合、Object パラメーターを持つコンストラクターが実行時に呼び出されます。 コードは、コンパイルされ、実行されますが、意図した動作を含みません。
導入されたバージョン
5.0
推奨アクション
TaskContinuationOptions 引数を、対応する TaskCreationOptions 値に置き換えます。 ほぼ常にコード内のバグが強調表示されるため、この警告を表示しないでください。 詳細については、CA2247 に関する記事を参照してください。
コード分析を完全に無効にするには、プロジェクト ファイルで
EnableNETAnalyzers
をfalse
に設定します。 詳細については、「EnableNETAnalyzers」を参照してください。
影響を受ける API
.NET