Dela via


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.