用可重入锁应该就可以了,a方法获取锁后,在方法内部的b方法不用再获取锁
//A(): Object obj=new Object(); lock(obj) { method1(互斥资源); B(); } private void B() { method2(互斥资源); }
对,楼主代码理解错了,肯定不是操作data啊。data怎么能操作呢
看起来好像死锁了吧
只要知道他是临界控制,不是什么读写控制。这个问题就不言而喻了 就像说”我宣布这块土地归我所有“---------那么我自己在我自己的地盘上当然可以自由的玩。 临界控制,控制的是线程间并发,而不是你自己。你自己没有并发,你自己的代码都是串行执行的代码。他lock不是不让人操作,而是不让别人操作。
[quote=引用 1 楼 正怒月神 的回复:] 看起来好像死锁了吧
110,537
社区成员
642,576
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧