Share via


경고 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을 참조하세요.

  • 코드 분석을 완전히 사용하지 않으려면 프로젝트 파일에서 EnableNETAnalyzersfalse로 설정합니다. 자세한 내용은 EnableNETAnalyzers를 참조하세요.

영향을 받는 API