一般来说,我对多线程非常陌生,我想知道如何锁定共享的整数变量,使其在被其他线程读取/更新时不被其他线程访问。
当我尝试做SyncLock myInteger时,我得到了这个错误:错误6 'SyncLock‘操作数不能是'Integer’类型,因为'Integer‘不是一个引用类型。
这里是我所指的一个简单的例子
Private Shared myInteger As Integer
Private Sub MySub()
SyncLock myInteger ' This does not work
' read/write a new value to myInteger
End SyncLock
End SubMySub由类的多个实例调用,并在多个线程中运行。
发布于 2012-05-28 18:14:20
我怀疑您不完全理解SyncLock的功能。即使您可以这样做(例如,如果Integer是一个引用类型),您也不会想这样做--因为当您替换myInteger的值时,锁是无用的。
您应该锁定其他的东西(我个人通常声明一个单独的只读变量,通常是为了锁定,通常是Object类型),或者如果您只想在任何时候对myInteger进行操作(而不是需要同时读取或更新多个变量的复合操作),那么使用Interlocked类。
https://stackoverflow.com/questions/10788814
复制相似问题