基本上我有一个全局变量,例如...
Dim int1 as integer
然后我有两个异步函数,比如......
function bleh()
int1 += 1
end function
和
function Meh()
int1 -= 1
end function
这两个函数都由 Task.Run() 运行。
我想在这两个函数中使用 SyncLock。但是,MSDN 站点上给出的所有示例仅显示了在单个函数中使用 SyncLock 的示例。因此,我不能简单地从 MSDN 描述中判断我是否可以在全局变量上跨两个不同的函数使用 SyncLock。
我想做的是这样的:
Private Shared SyncObj as Object '<-- global
Dim int1 as integer '<-- global
Sub Form_Load(...)
SyncObj = new Object
Task.Run(Function() bleh())
Task.Run(Function() Meh())
End Sub
Function bleh()
SyncLock SyncObj
int1 += 1
End SyncLock
End Function
Function Meh()
SyncLock SyncObj
int1 -= 1
End SyncLock
End Function
这样做可以吗?bleh() 会阻止 Meh() 更改 int1,反之亦然?谢谢!对不起VB大声笑。