SYSLIB0054: Thread.VolatileRead и Thread.VolatileWrite устарели
Все перегрузки и Thread.VolatileWrite методы устарелиThread.VolatileRead, начиная с .NET 9. При вызове их в коде выдается предупреждение SYSLIB0054
во время компиляции.
Причина обсоления
Платформа .NET Framework реализации 64-разрядных перегрузок Thread.VolatileRead и Thread.VolatileWrite методов некорректной атомарности. В .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>
Дополнительные сведения см. в разделе Отключение предупреждений.