SYSLIB0054: A Thread.VolatileRead és a Thread.VolatileWrite elavult

A metódusok és Thread.VolatileWrite metódusok Thread.VolatileRead minden túlterhelése elavult, a .NET 9-től kezdve. A kódban való meghívás figyelmeztetést SYSLIB0054 generál fordításkor.

A kényszer okának oka

A .NET-keretrendszer a 64 bites túlterhelések végrehajtása és Thread.VolatileWrite a Thread.VolatileRead módszerek helytelen atomisága volt. A .NET -ben (Core) az implementációt úgy módosították, hogy az Volatile.Read a megfelelő beolvasási/kiadási szemantikát biztosító, illetve Volatile.Writeaz ahhoz tartozó delegálásra legyen delegálva. Az osztály metódusai Thread nem tartalmaznak túlterhelést, amely logikai argumentumot fogad el, míg a Volatile metódusok igen. A módszerek elavultak, hogy ösztönözzék a Volatile módszerek használatát.

Áthidaló megoldás

Hívjon vagy Volatile.Write hívjon Volatile.Read inkább.

Figyelmeztetés mellőzése

Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.

// Disable the warning.
#pragma warning disable SYSLIB0054

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0054

Ha el szeretné tiltani a SYSLIB0054 projekt összes figyelmeztetését, adjon hozzá egy tulajdonságot <NoWarn> a projektfájlhoz.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0054</NoWarn>
  </PropertyGroup>
</Project>

További információ: Figyelmeztetések mellőzése.