C# Programmer's Reference  

volatile

The volatile keyword indicates that a field can be modified in the program by something such as the operating system, the hardware, or a concurrently executing thread.

volatile declaration

where:

declaration
The declaration of a field.

Remarks

The system always reads the current value of a volatile object at the point it is requested, even if the previous instruction asked for a value from the same object. Also, the value of the object is written immediately on assignment.

The volatile modifier is usually used for a field that is accessed by multiple threads without using the lock statement to serialize access. Using the volatile modifier ensures that one thread retrieves the most up-to-date value written by another thread.

The type of a field marked as volatile is restricted to the following types:

For more information on volatile, see 10.4.3 Volatile fields.

Example

The following sample shows how to declare a public field variable as volatile.

// csharp_volatile.cs
class Test
{
   public volatile int i;
   
   Test(int _i)
   {
      i = _i;
   }
   public static void Main()
   {
      
   }
}

See Also

C# Keywords | Modifiers | 10.4.3 Volatile fields