SYSLIB0054: Thread.VolatileRead och Thread.VolatileWrite är föråldrade
Alla överlagringar av Thread.VolatileRead metoderna och Thread.VolatileWrite är föråldrade, med början i .NET 9. Att anropa dem i kod genererar en varning SYSLIB0054
vid kompileringstillfället.
Orsak till obsoletion
.NET Framework-implementeringen av 64-bitars överlagringar av Thread.VolatileRead metoderna och Thread.VolatileWrite hade felaktig atomitet. I .NET (Core) ändrades implementeringen för att delegera till Volatile.Read respektive Volatile.Write, som tillhandahåller korrekt hämta/släppa semantik. Dessutom innehåller metoderna i Thread klassen inte någon överlagring som accepterar ett booleskt argument, medan Volatile metoderna gör det. Metoderna var föråldrade för att uppmuntra till användning av Volatile metoderna.
Lösning
Ring Volatile.Read eller Volatile.Write i stället.
Ignorera en varning
Om du måste använda föråldrade API:er kan du ignorera varningen i koden eller i projektfilen.
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan varningen.
// Disable the warning.
#pragma warning disable SYSLIB0054
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0054
Om du vill ignorera alla SYSLIB0054
varningar i projektet lägger du till en <NoWarn>
egenskap i projektfilen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0054</NoWarn>
</PropertyGroup>
</Project>
Mer information finns i Utelämna varningar.