경고 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