volatile (C# 參考)

更新:2007 年 11 月

volatile 關鍵字表示同時執行的多執行緒可能修改了欄位。宣告為 volatile 的欄位不遵從假設單一執行緒存取的編譯器最佳化。這確保最新的值會一直出現在欄位中。

由多個執行緒在未以 lock 陳述式 (Statement) 將存取動作序列化的情況下所存取的欄位上,經常會使用 volatile 修飾詞 (Modifier)。如需多執行緒案例 volatile 的範例,請參閱 HOW TO:建立和結束執行緒 (C# 程式設計手冊)

volatile 關鍵字可套用至以下型別的欄位:

  • 參考型別。

  • 指標型別 (在 unsafe 內容中)。請注意,即使指標本身可以為 Volatile,但所指向的物件不可為 Volatile。換句話說,您不能宣告 Volatile 的指標。

  • 整數類資料型別,例如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。

  • 具有整數類基底型別的列舉型別。

  • 已知為參考型別的泛用型別參數。

  • IntPtrUIntPtr

Volatile 關鍵字只能套用至類別或結構 (Struct) 的欄位。區域變數無法宣告為 volatile。

範例

下列範例將示範如何將公用欄位變數宣告為 volatile。

class VolatileTest
{
    public volatile int i;

    public void Test(int _i)
    {
        i = _i;
    }
}

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 3.10 執行順序

  • 10.5.3 Volatile 欄位

請參閱

概念

C# 程式設計手冊

參考

C# 關鍵字

修飾詞 (C# 參考)

其他資源

C# 參考