SYSLIB0054 : Thread.VolatileRead et Thread.VolatileWrite sont obsolètes

Toutes les surcharges des méthodes Thread.VolatileRead et Thread.VolatileWrite sont marquées comme obsolètes à partir de .NET 9. Les appeler dans du code génère un avertissement SYSLIB0054 à la compilation.

Motif de l’obsolescence

L’implémentation .NET Framework des surcharges de 64 bits des méthodes Thread.VolatileRead et Thread.VolatileWrite avait une atomicité incorrecte. Dans .NET (Core), l’implémentation a été remplacée par délégué pour les Volatile.Read et Volatile.Write, respectivement, ce qui offre des sémantiques de mise en production/d’acquisition appropriées. En outre, les méthodes dans la classe Thread ne comprennent aucune surcharge qui accepte un argument booléen, alors que les méthodes Volatile l’incluent. Les méthodes ont un état obsolète pour encourager l’utiliser des méthodes Volatile.

Solution de contournement

Appelez Volatile.Read ou Volatile.Write à la place.

Supprimer un avertissement

Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactiver l’avertissement.

// Disable the warning.
#pragma warning disable SYSLIB0054

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

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

Pour supprimer tous les avertissements SYSLIB0054 dans votre projet, ajoutez une propriété <NoWarn> à votre fichier projet.

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

Pour plus d’informations, consultez Supprimer des avertissements.