15

重複の可能性:
VB.net で volatile に相当するものを指定するにはどうすればよいですか?

C#の「volatile」に相当するVB.NETキーワードは何ですか?

キーワードがない場合、同等のメカニズムは何ですか?

4

3 に答える 3

16

VB.NET には、C# の volatile キーワードに相当するものはありません。C# の Volatile は、IL を生成するときにコンパイラが異なる処理を行うようにするだけですが、VB.NET コンパイラにはこのオプションがありません。

この方法で回避できます (このブログ投稿から取得):

Function VolatileRead(Of T)(ByRef Address As T) As T
    VolatileRead = Address
    Threading.Thread.MemoryBarrier()
End Function

Sub VolatileWrite(Of T)(ByRef Address As T, ByVal Value As T)
    Threading.Thread.MemoryBarrier()
    Address = Value
End Sub
于 2009-07-08T01:09:18.620 に答える
13

BCL の使用方法Thread.VolatileRead()と方法。VolatileWrite()

http://msdn.microsoft.com/en-us/library/system.threading.thread.volatileread.aspx

于 2010-11-09T00:35:28.943 に答える
1

使用する変数タイプに応じて、使用することをお勧めします

System.Threading.Thread.VolatileRead()

System.Threading.Thread.VolatileWrite()

また、System.Threading.Interlockedにはいくつかの素晴らしいものが含まれています...

于 2011-08-10T09:42:16.153 に答える