thể trùng lặp:
How do I specify the equivalent of volatile in VB.net?dễ bay hơi tương đương trong VB.NET
từ khóa VB.NET tương đương với C# "không ổn định" là gì?
Nếu không có từ khóa cơ chế nào tương đương?
thể trùng lặp:
How do I specify the equivalent of volatile in VB.net?dễ bay hơi tương đương trong VB.NET
từ khóa VB.NET tương đương với C# "không ổn định" là gì?
Nếu không có từ khóa cơ chế nào tương đương?
Không có sự tương đương với từ khóa biến động của C# trong VB.NET. Dễ bay hơi trong C# chỉ đảm bảo trình biên dịch xử lý mọi thứ khác nhau khi tạo IL, nhưng trình biên dịch VB.NET không có tùy chọn này.
Bạn có thể làm việc xung quanh nó theo cách này (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
Sử dụng Thread.VolatileRead()
và VolatileWrite()
phương pháp từ BCL.
http://msdn.microsoft.com/en-us/library/system.threading.thread.volatileread.aspx
Tùy thuộc vào loại biến bạn sử dụng tôi sẽ đề nghị sử dụng
System.Threading.Thread.VolatileRead()
System.Threading.Thread.VolatileWrite()
Ngoài ra System.Threading.Interlocked chứa một số nội dung hay ...
Tôi có thể hỏi lý do bạn muốn biết không? Hầu hết mọi người không cố gắng viết các thuật toán đa luồng không khóa trong VB. –
@EricLippert, xin lỗi nếu tôi nghe có vẻ thô lỗ, nhưng tại sao bạn hỏi "tại sao bạn muốn biết"? Nếu hầu hết mọi người không muốn tiếp cận với các vì sao - liệu những người đó, những người cố gắng, dừng lại? Tôi, cá nhân, làm rất nhiều phát triển trong VB và có thể nói rằng ngôn ngữ này là xa phía trước của hầu hết các ngôn ngữ. – Dima
@Dima: Bởi vì tại thời điểm tôi ở trong nhóm thiết kế cho C# và trong tiếp xúc hàng ngày với nhóm thiết kế VB. Bằng cách thu hút phản hồi trực tiếp từ người dùng thực sự với nhu cầu thực tế và xác định nhu cầu của họ trong bối cảnh của họ, tôi có thể thể hiện rõ hơn và chính xác hơn nhu cầu của người dùng đó cho đồng nghiệp của tôi trên các nhóm thiết kế cho cả hai ngôn ngữ. Tôi rất vui khi biết rằng VB đáp ứng nhu cầu của bạn; đó là một ngôn ngữ thú vị và kỳ quặc. –