メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。
フィールドの値を読み取ります。この値は、プロセッサの数やプロセッサ キャッシュの状態にかかわらず、コンピュータ内のいずれかのプロセッサによって書き込まれた最新の値です。
Overloads Public Shared Function VolatileRead( _
ByRef address As Short _) As Short
[C#]
public static short VolatileRead( ref shortaddress);
[C++]
public: static short VolatileRead(short* address);
[JScript]
public static function VolatileRead(
address : Int16) : Int16;
パラメータ
- address
読み取られるフィールド。
戻り値
いずれかのプロセッサによってフィールドに書き込まれた最新の値。
解説
VolatileRead および VolatileWrite は、特別な場合の同期のためにあります。一般的な状況の場合、C# の lock ステートメント、Visual Basic の SyncLock ステートメント、および Monitor クラスは、より使いやすい代替方法です。
マルチプロセッサ システムの場合、 VolatileRead は、いずれかのプロセッサがメモリ位置に書き込んだ最後の値を取得します。これには、プロセッサ キャッシュのフラッシュが必要な場合があります。
ユニプロセッサ システムの場合でも、 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.VolatileRead オーバーロードの一覧