VB.NET中的易失性等价物

可能重复:
如何在VB.net中指定volatile的等价物?

什么是C#“volatile”的VB.NET关键字?

如果没有关键字什么机制是等价的?

在VB.NET中,C#的易失性密钥没有等价。 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 

使用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还包含一些不错的东西……