C#の「volatile」に相当するVB.NETキーワードは何ですか?
キーワードがない場合、同等のメカニズムは何ですか?
C#の「volatile」に相当するVB.NETキーワードは何ですか?
キーワードがない場合、同等のメカニズムは何ですか?
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
BCL の使用方法Thread.VolatileRead()
と方法。VolatileWrite()
http://msdn.microsoft.com/en-us/library/system.threading.thread.volatileread.aspx
使用する変数タイプに応じて、使用することをお勧めします
System.Threading.Thread.VolatileRead()
System.Threading.Thread.VolatileWrite()
また、System.Threading.Interlockedにはいくつかの素晴らしいものが含まれています...