可能性の重複:
How do I specify the equivalent of volatile in VB.net?揮発性同等
は "揮発性" C#のVB.NETのキーワードと同等とは何ですか?
キーワードがない場合、同等のメカニズムはありますか?
可能性の重複:
How do I specify the equivalent of volatile in VB.net?揮発性同等
は "揮発性" C#のVB.NETのキーワードと同等とは何ですか?
キーワードがない場合、同等のメカニズムはありますか?
VB.NETのC#の揮発性キーワードには相当なものはありません。揮発性のC#では、ILを生成するときにコンパイラが処理を異なるようにしますが、VB.NETコンパイラにはこのオプションがありません。
あなたはこの方法(taken from this blog post)、それを回避することができます。BCLから
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()
方法。あなたは私が
System.Threading.Thread.VolatileRead()
System.Threading.Thread.VolatileWriteを()を使用してことをお勧め使用変数のどのような種類に応じて
http://msdn.microsoft.com/en-us/library/system.threading.thread.volatileread.aspx
また、System.Threading.Interlockedには素敵なものが含まれています...
私はあなたがなぜ知りたいのですか?ほとんどの人はVBでロックフリーのマルチスレッドアルゴリズムを書こうとしません。 –
@EricLippert、私が失礼を犯すと私は言い訳をしますが、なぜあなたは「知りたいのですか」と尋ねますか?ほとんどの人が星に手を差し伸べることを望んでいない場合は、その数人、誰が試してみるとよいでしょうか? 個人的には、VBで多くの開発を行い、この言語はほとんどの言語よりもはるかに早いと言えるでしょう。 – Dima
@Dima:当時、私はC#の設計チームと、VBの設計チームと毎日連絡を取っていたので。実際のユーザーからのフィードバックを実際のニーズに直接募集し、そのニーズに応じてニーズを判断することで、これらのユーザーニーズを、両言語の設計チームの同僚により正確に表現することができました。私はVBがあなたのニーズを満たすことを聞いてうれしく思います。それは楽しくて風変わりな言葉です。 –