Thread.VolatileWrite メソッド (Int32, Int32)

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

値をフィールドにすぐに書き込みます。値はコンピュータ内のすべてのプロセッサに対して可視になります。

Overloads Public Shared Sub VolatileWrite( _
   ByRef address As Integer, _   ByVal value As Integer _)
[C#]
public static void VolatileWrite(   ref intaddress,intvalue);
[C++]
public: static void VolatileWrite(int* address,intvalue);
[JScript]
public static function VolatileWrite(
   address : int,value : int);

パラメータ

  • address
    値を書き込むフィールド。
  • value
    書き込む値。

解説

VolatileRead および VolatileWrite は、特別な場合の同期のためにあります。一般的な状況の場合、C# の lock ステートメント、Visual Basic の SyncLock ステートメント、および Monitor クラスは、より使いやすい代替方法です。

マルチプロセッサ システムの場合、 VolatileWrite では、メモリ位置に書き込まれた値がすぐにすべてのプロセッサから可視になることが保証されます。これには、プロセッサ キャッシュのフラッシュが必要な場合があります。

ユニプロセッサ システムの場合でも、 VolatileRead および VolatileWrite では、値がメモリに読み取りまたは書き込みされることが保証されます。プロセッサ レジスタなどにキャッシュされません。したがって、これらを使用することによって、別のスレッドまたはハードウェアが更新することがあるフィールドへのアクセスを同期できます。

このメソッドの呼び出しは、1 回のメモリ アクセスでだけ有効です。フィールドの効果的な同期を提供するためには、フィールドへのすべてのアクセスで VolatileRead または VolatileWrite を使用する必要があります。

メモ   C# の場合、フィールドに volatile 修飾子を使用すると、そのフィールドへのすべてのアクセスで VolatileRead または VolatileWrite が使用されることが保証されます。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

Thread クラス | Thread メンバ | System.Threading 名前空間 | Thread.VolatileWrite オーバーロードの一覧