我想在线程中这样调用函数而不相互干扰 可以吗?
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对象,需要全局的,然后线程内部锁定这个对象,开始干活,干完活,释放这个对象,等着下一个线程锁定。。