SYSLIB0054: Thread.VolatileRead und Thread.VolatileWrite sind veraltet

Alle Überladungen der Methoden Thread.VolatileRead und Thread.VolatileWrite sind beginnend mit .NET 9 veraltet. Wenn Sie diese im Code aufrufen, wird zur Kompilierzeit die Warnung SYSLIB0054 ausgelöst.

Grund für das Auslaufen

Die .NET Framework-Implementierung der 64-Bit-Überladungen der Methoden Thread.VolatileRead und Thread.VolatileWrite hatte eine falsche Unteilbarkeit. Bei .NET Core wurde die Implementierung so geändert, dass an die Methoden Volatile.Read und Volatile.Write delegiert wird bzw. die richtige Acquire-Release-Semantik bereitgestellt wird. Darüber hinaus enthalten die Methoden in der Thread-Klasse keine Überladung, die ein boolesches Argument akzeptiert, die Volatile-Methoden dagegen schon. Die Methoden sind veraltet, damit die Volatile-Methoden verstärkt verwendet werden.

Problemumgehung

Rufen Sie stattdessen Volatile.Read oder Volatile.Write auf.

Unterdrücken einer Warnung

Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung im Code oder in Ihrer Projektdatei unterdrücken.

Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Warnung zu deaktivieren und dann wieder zu aktivieren.

// Disable the warning.
#pragma warning disable SYSLIB0054

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

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

Um alle SYSLIB0054-Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn>-Eigenschaft hinzu.

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

Weitere Informationen finden Sie unter Unterdrücken von Warnungen.