警告 CA2247:TaskCompletionSource 建構函式的引數應為 TaskCreationOptions 值

從 .NET 5 開始,系統會預設啟用 .NET 程式碼分析器規則 CA2247。 這項規則會針對向 TaskCompletionSource<TResult> 建構函式的呼叫產生組建警告,該建構函式傳遞 TaskContinuationOptions 型別的引數。

變更描述

從 .NET 5 開始,.NET SDK 包含 .NET 原始程式碼分析器。 這些規則中有些會預設啟用,包括 CA2247。 如果您的專案包含違反此規則的程式碼,且設定為將警告視為錯誤,則此項變更會中斷您的組建。

規則 CA2247 會找出針對 TaskCompletionSource<TResult> 建構函式的呼叫,該建構函式傳遞 TaskContinuationOptions 型別引數。 TaskCompletionSource<TResult> 型別具備接受 TaskCreationOptions 值的建構函式,以及另一個接受 Object 的建構函式。 如果您意外傳遞 TaskContinuationOptions 值而非 TaskCreationOptions 值,則具備 Object 參數的建構函式會於執行階段受到呼叫。 您的程式碼會編譯並執行,並不會出現預期的行為。

導入的版本

5.0

  • TaskContinuationOptions 引數取代為對應的 TaskCreationOptions 值。 請勿隱藏此警告,因為這項警告幾乎一律會指出程式碼中的錯誤。 如需詳細資訊,請參閱 CA2247

  • 若要完全停用程式碼分析,請在專案檔中將 EnableNETAnalyzers 設定為 false。 如需詳細資訊,請參閱 EnableNETAnalyzers

受影響的 API