Ostrzeżenie CA2247: Argument dla konstruktora TaskCompletionSource powinien mieć wartość TaskCreationOptions

Reguła analizatora kodu platformy .NET CA2247 jest domyślnie włączona, począwszy od platformy .NET 5. Tworzy ostrzeżenie kompilacji dla wywołań TaskCompletionSource<TResult> konstruktora, który przekazuje argument typu TaskContinuationOptions.

Opis zmiany

Począwszy od platformy .NET 5, zestaw .NET SDK zawiera analizatory kodu źródłowego platformy .NET. Kilka z tych reguł jest domyślnie włączonych, w tym CA2247. Jeśli projekt zawiera kod, który narusza tę regułę i jest skonfigurowany do traktowania ostrzeżeń jako błędów, ta zmiana może spowodować przerwanie kompilacji.

Reguła CA2247 znajduje wywołania konstruktora TaskCompletionSource<TResult> , który przekazuje argument typu TaskContinuationOptions. Typ TaskCompletionSource<TResult> ma konstruktor, który akceptuje TaskCreationOptions wartość, a inny konstruktor, który akceptuje Objectelement . Jeśli przypadkowo przekażesz TaskContinuationOptions wartość zamiast TaskCreationOptions wartości, konstruktor z parametrem Object jest wywoływany w czasie wykonywania. Kod zostanie skompilowany i uruchomiony, ale nie będzie miał zamierzonego zachowania.

Wprowadzona wersja

5,0

  • Zastąp TaskContinuationOptions argument odpowiednią TaskCreationOptions wartością. Nie pomijaj tego ostrzeżenia, ponieważ prawie zawsze wyróżnia usterkę w kodzie. Aby uzyskać więcej informacji, zobacz CA2247.

  • Aby całkowicie wyłączyć analizę kodu, ustaw wartość EnableNETAnalyzers na false w pliku projektu. Aby uzyskać więcej informacji, zobacz EnableNETAnalyzers.

Dotyczy interfejsów API