VB.NET中的易失性等价物

14 c# vb.net multithreading volatile

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

什么是VB#关键字相当于C#"volatile"?

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

Ree*_*sey 14

在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
Run Code Online (Sandbox Code Playgroud)


Mik*_*ain 12

使用Thread.VolatileRead()VolatileWrite()BCL的方法.

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