There’s no equivalent of C#’s volatile
keyword in VB.NET. Instead what’s often recommended is the use of MemoryBarrier. Helper methods could also be written:
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
Also there’s a useful blog post on this subject.