Warnung CA2247: Das Argument für den Konstruktor „TaskCompletionSource“ muss ein TaskCreationOptions-Wert sein

Die .NET-Codeanalyseregel CA2247 ist ab .NET 5 standardmäßig aktiviert. Sie erzeugt eine Buildwarnung für Aufrufe des Konstruktors TaskCompletionSource<TResult>, die ein Argument des Typs TaskContinuationOptions übergeben.

Änderungsbeschreibung

Ab .NET 5 umfasst das .NET SDK .NET-Quellcodeanalysen. Mehrere dieser Regeln, einschließlich CA2247, werden standardmäßig aktiviert. Wenn Ihr Projekt Code enthält, der gegen diese Regel verstößt und dafür konfiguriert ist, Warnungen als Fehler zu interpretieren, könnte es sich hierbei um einen Breaking Change für Ihr Build handeln.

Die Regel CA2247 findet Aufrufe des Konstruktors TaskCompletionSource<TResult>, die ein Argument des Typs TaskContinuationOptions übergeben. Der Typ TaskCompletionSource<TResult> verfügt über einen Konstruktor, der einen TaskCreationOptions-Wert annimmt, und einen weiteren Konstruktor, der eine Object-Klasse akzeptiert. Wenn Sie versehentlich einen TaskContinuationOptions-Wert anstelle eines TaskCreationOptions-Werts übergeben, wird der Konstruktor mit dem Object-Parameter zur Laufzeit aufgerufen. Ihr Code wird kompiliert und ausgeführt, später jedoch nicht das beabsichtigte Verhalten aufweisen.

Eingeführt in Version

5.0

  • Ersetzen Sie das Argument TaskContinuationOptions durch den entsprechenden TaskCreationOptions-Wert. Unterdrücken Sie diese Warnung nicht, da sie fast immer auf einen Fehler in Ihrem Code hinweist. Weitere Informationen finden Sie unter CA2247.

  • Legen Sie EnableNETAnalyzers in Ihrer Projektdatei auf false fest, um die Codeanalyse vollständig zu deaktivieren. Weitere Informationen finden unter EnableNETAnalyzers.

Betroffene APIs