当前位置: 代码迷 >> 多核软件开发 >> Struct 里如何做线程同步
  详细解决方案

Struct 里如何做线程同步

热度:10406   发布时间:2013-02-26 00:00:00.0
Struct 里怎么做线程同步?
Struct里的一个操作可能会被多线程访问, 如果要做线程同步,
就得定义一个object,
C# code
private object m_locker;


然后发现这个object的初例化就成了问题, 因为struct的默认构造函数会把
它初使化成null, 想lock的时候还得判断这个,这其实又引入了另一个问题。

在struct内部能做线程安全吗?还是只能在外部?

------解决方案--------------------------------------------------------
private object m_locker=new object();
这样就不是null了
------解决方案--------------------------------------------------------
它(Struct)是如何被多线程访问的?


------解决方案--------------------------------------------------------
Threading命名空间里面有很多可选的方案。。。
比如Monitor、Interlocked、AutoResetEvent都可以防止同步访问的错误
------解决方案--------------------------------------------------------
探讨
多线程会修改它的属性,比如一个方法
Method()
...
  相关解决方案