SYSLIB0054: Thread.VolatileRead 및 Thread.VolatileWrite는 더 이상 사용되지 않음
.NET 9부터 Thread.VolatileRead 및 Thread.VolatileWrite 메서드의 모든 오버로드는 더 이상 사용되지 않습니다. 코드에서 이러한 메서드를 호출하면 컴파일 시간에 SYSLIB0054
경고가 생성됩니다.
사용 중지 이유
Thread.VolatileRead 및 Thread.VolatileWrite 메서드의 64비트 오버로드에 대한 .NET Framework 구현에 잘못된 원자성이 있습니다. .NET(Core)에서는 적절한 획득/해제 의미 체계를 제공하는 각각 Volatile.Read 및 Volatile.Write에 위임하도록 구현이 변경되었습니다. 또한 Thread 클래스의 메서드에는 부울 인수를 허용하는 오버로드가 포함되지 않지만 Volatile 메서드에는 포함됩니다. 이 메서드는 Volatile 메서드의 사용을 장려하기 위해 더 이상 사용되지 않습니다.
해결 방법
대신 Volatile.Read 또는 Volatile.Write를 호출합니다.
경고 표시 안 함
사용되지 않는 API를 사용해야 하는 경우, 코드 또는 프로젝트 파일에서 경고를 표시하지 않을 수 있습니다.
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 경고를 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
// Disable the warning.
#pragma warning disable SYSLIB0054
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0054
프로젝트에서 모든 SYSLIB0054
경고를 표시하지 않으려면 프로젝트 파일에 <NoWarn>
속성을 추가합니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0054</NoWarn>
</PropertyGroup>
</Project>
자세한 내용은 경고 표시 안 함을 참조하세요.
.NET