Possible en double:
How do I specify the equivalent of volatile in VB.net?équivalent volatils dans VB.NET
Quel est le mot-clé VB.NET équivalent de C# "volatile"?
S'il n'y a pas de mot-clé, quel mécanisme est l'équivalent?
Possible en double:
How do I specify the equivalent of volatile in VB.net?équivalent volatils dans VB.NET
Quel est le mot-clé VB.NET équivalent de C# "volatile"?
S'il n'y a pas de mot-clé, quel mécanisme est l'équivalent?
Il n'y a pas d'équivoque avec le mot clé volatile C# dans VB.NET. Volatile en C# s'assure que le compilateur gère les choses différemment lors de la génération de l'IL, mais le compilateur VB.NET n'a pas cette option.
Vous pouvez travailler autour de cette façon (taken from this blog post):
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
Utilisez Thread.VolatileRead()
et VolatileWrite()
méthodes de la BCL.
http://msdn.microsoft.com/en-us/library/system.threading.thread.volatileread.aspx
En fonction de ce type de variable que vous utilisez je suggère d'utiliser
System.Threading.Thread.VolatileRead()
System.Threading.Thread.VolatileWrite()
Aussi System.Threading.Interlocked contient des trucs sympa ...
Puis-je vous demander pourquoi vous voulez savoir? La plupart des gens n'essaient pas d'écrire des algorithmes multithread sans verrou dans VB. –
@EricLippert, excusez-moi si je semble impoli, mais pourquoi demandez-vous "pourquoi vous voulez savoir"? Si la plupart des gens n'ont aucun désir d'atteindre les étoiles, ceux qui essaient de le faire devraient-ils arrêter? Personnellement, je fais beaucoup de développement en VB et je peux dire que cette langue est loin devant la plupart des langues. – Dima
@Dima: Parce qu'à l'époque j'étais sur l'équipe de conception pour C# et en contact quotidien avec l'équipe de conception VB. En sollicitant la rétroaction directement auprès des utilisateurs réels ayant des besoins réels, et en déterminant quels sont ces besoins dans leur contexte, je pourrais exprimer de façon plus précise et précise ces besoins d'utilisateurs à mes collègues des équipes de conception pour les deux langues. Je suis heureux d'entendre que VB répond à vos besoins; c'est une langue délicieuse et décalée. –