Sdílet prostřednictvím


SYSLIB0054: Thread.VolatileRead a Thread.VolatileWrite jsou zastaralé

Všechna přetížení Thread.VolatileRead a Thread.VolatileWrite metody jsou zastaralé, počínaje rozhraním .NET 9. Volání v kódu generuje upozornění SYSLIB0054 v době kompilace.

Důvod obsoletion

Implementace 64bitového přetížení Thread.VolatileRead rozhraní .NET Framework a Thread.VolatileWrite metod měla nesprávnou atomicitu. V .NET (Core) se implementace změnila tak, aby delegovala na Volatile.Read sémantiku a Volatile.Writev uvedeném pořadí poskytovala správnou sémantiku získání/vydání. Kromě toho metody ve Thread třídě nezahrnují přetížení, které přijímá logický argument, zatímco Volatile metody dělají. Metody byly zastaralé, aby podporovaly Volatile používání metod.

Alternativní řešení

Zavolejte Volatile.Read nebo Volatile.Write místo toho.

Potlačení upozornění

Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.

Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.

// Disable the warning.
#pragma warning disable SYSLIB0054

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

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

Pokud chcete potlačit všechna SYSLIB0054 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.

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

Další informace naleznete v tématu Potlačení upozornění.