Volatile Volatile Volatile Volatile Class

Définition

Contient des méthodes pour effectuer des opérations de mémoire volatile.Contains methods for performing volatile memory operations.

public ref class Volatile abstract sealed
public static class Volatile
type Volatile = class
Public Class Volatile
Héritage
VolatileVolatileVolatileVolatile

Remarques

Sur un système multiprocesseur, une opération d’écriture volatile garantit qu’une valeur écrite dans un emplacement de mémoire est immédiatement visible pour tous les processeurs.On a multiprocessor system, a volatile write operation ensures that a value written to a memory location is immediately visible to all processors. Une opération de lecture volatile obtient la valeur la plus récente écrite dans un emplacement de mémoire par n’importe quel processeur.A volatile read operation obtains the very latest value written to a memory location by any processor. Ces opérations peuvent nécessiter le vidage des caches du processeur, ce qui peut affecter les performances.These operations might require flushing processor caches, which can affect performance.

Notes

Sur un système monoprocesseur, les lectures et écritures volatiles garantissent qu’une valeur est lue ou écrite dans la mémoire et qu’elle n’est pas mise en cache (par exemple, dans un registre de processeur).On a uniprocessor system, volatile reads and writes ensure that a value is read or written to memory and not cached (for example, in a processor register). Par conséquent, vous pouvez utiliser ces opérations pour synchroniser l’accès à un champ qui peut être mis à jour par un autre thread ou par du matériel.Thus, you can use these operations to synchronize access to a field that can be updated by another thread or by hardware.

Les opérations de mémoire volatile sont destinées à des cas particuliers de synchronisation, où le verrouillage normal n’est pas une solution acceptable.Volatile memory operations are for special cases of synchronization, where normal locking is not an acceptable alternative. Dans des circonstances normales, C# lock l’instruction, l' SyncLock instruction Visual Basic et la Monitor classe constituent le moyen le plus simple et le moins sujet aux erreurs de synchronisation de l’accès aux Lazy<T> données, et la classe fournit un méthode simple pour écrire du code d’initialisation différé sans utiliser directement le verrouillage à double contrôle.Under normal circumstances, the C# lock statement, the Visual Basic SyncLock statement, and the Monitor class provide the easiest and least error-prone way of synchronizing access to data, and the Lazy<T> class provides a simple way to write lazy initialization code without directly using double-checked locking.

Les Volatile.Read méthodes Volatile.Write et activent les fonctionnalités qui ne sont pas prises en charge dans les langages.The Volatile.Read and Volatile.Write methods enable functionality that is not supported in languages. Par exemple :For example:

  • Certains langages, tels que Visual Basic, ne reconnaissent pas le concept d’opérations de mémoire volatile.Some languages, such as Visual Basic, do not recognize the concept of volatile memory operations. La Volatile classe fournit cette fonctionnalité dans ces langages.The Volatile class provides that functionality in such languages.

    Notes

    L’appel de l’une de ces méthodes n’affecte qu’un seul accès à la mémoire.Calling one of these methods affects only a single memory access. Pour fournir une synchronisation efficace pour un champ, tout accès au champ doit utiliser Volatile.Read et Volatile.Write.To provide effective synchronization for a field, all access to the field must use Volatile.Read and Volatile.Write.

  • Dans C#, l’utilisation volatile du modificateur sur un champ garantit que chaque accès à ce champ est une opération de mémoire volatile, volatile mais que le modificateur ne peut pas être appliqué aux éléments de tableau.In C#, using the volatile modifier on a field guarantees that every access to that field is a volatile memory operation, but the volatile modifier cannot be applied to array elements. Les Volatile.Read méthodes Volatile.Write et peuvent être utilisées sur des éléments de tableau.The Volatile.Read and Volatile.Write methods can be used on array elements.

Méthodes

Read(Boolean) Read(Boolean) Read(Boolean) Read(Boolean)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(Byte) Read(Byte) Read(Byte) Read(Byte)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(Double) Read(Double) Read(Double) Read(Double)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(Int16) Read(Int16) Read(Int16) Read(Int16)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(Int32) Read(Int32) Read(Int32) Read(Int32)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(Int64) Read(Int64) Read(Int64) Read(Int64)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(IntPtr) Read(IntPtr) Read(IntPtr) Read(IntPtr)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(SByte) Read(SByte) Read(SByte) Read(SByte)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(Single) Read(Single) Read(Single) Read(Single)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(UInt16) Read(UInt16) Read(UInt16) Read(UInt16)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(UInt32) Read(UInt32) Read(UInt32) Read(UInt32)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(UInt64) Read(UInt64) Read(UInt64) Read(UInt64)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read(UIntPtr) Read(UIntPtr) Read(UIntPtr) Read(UIntPtr)

Lit la valeur du champ spécifié.Reads the value of the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant cette méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Read<T>(T) Read<T>(T) Read<T>(T) Read<T>(T)

Lit la référence d'objet à partir du champ spécifié.Reads the object reference from the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît après cette méthode dans le code, le processeur ne peut pas la déplacer avant la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.

Write(Boolean, Boolean) Write(Boolean, Boolean) Write(Boolean, Boolean) Write(Boolean, Boolean)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(Byte, Byte) Write(Byte, Byte) Write(Byte, Byte) Write(Byte, Byte)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(Double, Double) Write(Double, Double) Write(Double, Double) Write(Double, Double)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(Int16, Int16) Write(Int16, Int16) Write(Int16, Int16) Write(Int16, Int16)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(Int32, Int32) Write(Int32, Int32) Write(Int32, Int32) Write(Int32, Int32)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(Int64, Int64) Write(Int64, Int64) Write(Int64, Int64) Write(Int64, Int64)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(IntPtr, IntPtr) Write(IntPtr, IntPtr) Write(IntPtr, IntPtr) Write(IntPtr, IntPtr)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(SByte, SByte) Write(SByte, SByte) Write(SByte, SByte) Write(SByte, SByte)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(Single, Single) Write(Single, Single) Write(Single, Single) Write(Single, Single)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(UInt16, UInt16) Write(UInt16, UInt16) Write(UInt16, UInt16) Write(UInt16, UInt16)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(UInt32, UInt32) Write(UInt32, UInt32) Write(UInt32, UInt32) Write(UInt32, UInt32)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(UInt64, UInt64) Write(UInt64, UInt64) Write(UInt64, UInt64) Write(UInt64, UInt64)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write(UIntPtr, UIntPtr) Write(UIntPtr, UIntPtr) Write(UIntPtr, UIntPtr) Write(UIntPtr, UIntPtr)

Écrit la valeur spécifiée dans le champ spécifié.Writes the specified value to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

Write<T>(T, T) Write<T>(T, T) Write<T>(T, T) Write<T>(T, T)

Écrit la référence d'objet spécifiée dans le champ spécifié.Writes the specified object reference to the specified field. Sur les systèmes qui en ont besoin, insère une barrière mémoire qui empêche le processeur de réorganiser les opérations de mémoire comme suit : Si une opération de lecture ou d'écriture apparaît avant cette méthode dans le code, le processeur ne peut pas la déplacer après la méthode.On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.

S’applique à

Voir aussi