Compartir a través de


SYSLIB0054: Thread.VolatileRead y Thread.VolatileWrite están obsoletos

Todas las sobrecargas de los métodos Thread.VolatileRead y Thread.VolatileWrite están obsoletas, a partir de .NET 9. Si se los llama en el código, se genera la advertencia SYSLIB0054 en tiempo de compilación.

Motivo de la obsolescencia

La implementación de .NET Framework de las sobrecargas de 64 bits de los métodos Thread.VolatileRead y Thread.VolatileWrite tenían atomicidad incorrecta. En .NET (Core), la implementación se cambió para delegar en el Volatile.Read y Volatile.Write, respectivamente, lo que proporciona una semántica de adquisición y versión adecuada. Además, los métodos de la clase Thread no incluyen una sobrecarga que acepta un argumento booleano, mientras que los métodos Volatile lo hacen. Los métodos estaban obsoletos para fomentar el uso de los métodos de Volatile.

Solución alternativa

Llame a Volatile.Read o Volatile.Write en su lugar.

Supresión de una advertencia

Si tiene que seguir usando las API obsoletas, puede suprimir la advertencia en el código o en el archivo de proyecto.

Para suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y luego volver a habilitar la advertencia.

// Disable the warning.
#pragma warning disable SYSLIB0054

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

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

Para suprimir todas las advertencias SYSLIB0054 del proyecto, agregue una propiedad <NoWarn> al archivo del proyecto.

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

Para obtener más información, vea Suprimir advertencias.