关于 Lock 的问题
public void Function()
{
System.Object lockThis = new System.Object();
lock(lockThis)
{
// Access thread-sensitive resources.
}
}
这个 lockThis 感觉是没有任何作用的。
另外,lock的变量 感觉不是要锁住要共享的变量。lock的变量感觉是作为一个 标志而存在。
------解决方案--------------------这个写法没任何意义
------解决方案--------------------不懂,去查了下也还没大看明白,求解
------解决方案--------------------这个写法没有任何意义
lockThis弄成全局的,所有线程共用的才行
------解决方案--------------------在类里定义 System.Object lockThis = new System.Object();
然后在function里写
lock(lockThis) { // Access thread-sensitive resources. }
因为不同的线程使用到同一个变量lockThis,所以是有效的。
你那种写法每个变量都是独立的,所以线程间没有同步关系。
------解决方案--------------------你可以把要Lock的变量理解为钥匙。只有拿到了这把钥匙,才可以开启钥匙对应的箱子,而其他人需要等你归还了钥匙才能打开这个箱子。
------解决方案--------------------你把那个锁的对象定义成全局变量好不好?你定义个局部变量没意义。。