Предупреждение CA2247: конструктор TaskCompletionSource должен иметь значение TaskCreationOptions.
Начиная с .NET 5 правило CA2247 анализатора кода .NET включено по умолчанию. Оно создает предупреждение сборки для вызовов конструктора TaskCompletionSource<TResult>, которые передают аргумент типа TaskContinuationOptions.
Описание изменения
Начиная с .NET 5 пакет SDK для .NET включает анализаторы исходного кода .NET. Некоторые из этих правил включены по умолчанию, в том числе CA2247. Если проект содержит код, нарушающий это правило и настроенный на обработку предупреждений как ошибок, это изменение может нарушить сборку.
Правило CA2247 находит вызовы конструктора TaskCompletionSource<TResult>, которые передают аргумент типа TaskContinuationOptions. Тип TaskCompletionSource<TResult> имеет конструктор, принимающий значение TaskCreationOptions, и другой конструктор, принимающий Object. Если вы случайно передадите значение TaskContinuationOptions вместо значения TaskCreationOptions, конструктор с параметром Object будет вызван во время выполнения. Код будет компилироваться и выполняться, но поведение будет отличаться от ожидаемого.
Представленные версии
5,0
Рекомендуемое действие
Замените аргумент TaskContinuationOptions соответствующим значением TaskCreationOptions. Не отключайте это предупреждение, так как оно почти всегда выделяет ошибку в коде. См. раздел CA2247.
Чтобы полностью отключить анализ кода, задайте для параметра
EnableNETAnalyzers
значениеfalse
в файле проекта. Дополнительные сведения см. в разделе EnableNETAnalyzers.