首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现共享整数的SyncLock

如何实现共享整数的SyncLock
EN

Stack Overflow用户
提问于 2012-05-28 18:10:36
回答 1查看 1.9K关注 0票数 2

一般来说,我对多线程非常陌生,我想知道如何锁定共享的整数变量,使其在被其他线程读取/更新时不被其他线程访问。

当我尝试做SyncLock myInteger时,我得到了这个错误:错误6 'SyncLock‘操作数不能是'Integer’类型,因为'Integer‘不是一个引用类型。

这里是我所指的一个简单的例子

代码语言:javascript
复制
Private Shared myInteger As Integer

Private Sub MySub()
  SyncLock myInteger ' This does not work
    ' read/write a new value to myInteger
  End SyncLock
End Sub

MySub由类的多个实例调用,并在多个线程中运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-28 18:14:20

我怀疑您不完全理解SyncLock的功能。即使您可以这样做(例如,如果Integer是一个引用类型),您也不会想这样做--因为当您替换myInteger的值时,锁是无用的。

您应该锁定其他的东西(我个人通常声明一个单独的只读变量,通常是为了锁定,通常是Object类型),或者如果您只想在任何时候对myInteger进行操作(而不是需要同时读取或更新多个变量的复合操作),那么使用Interlocked类。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10788814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档