当前位置: 代码迷 >> C# >> 关于Lock的用法解决思路
  详细解决方案

关于Lock的用法解决思路

热度:58   发布时间:2016-05-05 04:47:18.0
关于Lock的用法

我想在线程中这样调用函数而不相互干扰 可以吗?

public int  Function(int a,int b)
{
    object lockThis = new object ();
    int c;
    lock (lockThis)
    {
        c=a+b;
    } 
        return c;
}
  
------解决思路----------------------
你的例子里没有任何需要lock的地方
1.首先a和b是参数传递进来的,并不是直接使用a和b的地址
2.对a和b只有取值,没有赋值
3.变量c是个局部变量,两个线程同时执行,并不是同一个c
------解决思路----------------------
除非线程处理模块有公用的资源,这样才能够使用lock,对公用资源进行锁定,一个线程用完了,另外一个线程接着用

锁定资源可以直接初始化一个object对象,需要全局的,然后线程内部锁定这个对象,开始干活,干完活,释放这个对象,等着下一个线程锁定。。
  相关解决方案