![]() |
1
8
这里没有太多的代码,但我最好的猜测是
live-lock
问题。如果
注意如何
|
![]() |
2
4
如果你能使用.NET 4,你最好使用
|
![]() |
3
2
设计没有错。
使用时出现问题
可以用
|
![]() |
4
1
而且,你应该知道
|
![]() |
5
1
使用提供的代码示例很难判断。
在Mediator类和producer类中提供更多细节之前,这是一个疯狂的猜测。似乎有些线程在你不希望锁的情况下控制着它。一旦你发出脉冲,你需要通过退出“lock”作用域来释放线程中的锁。所以,如果你在介质中的某个地方有锁,然后调用Pulse,你需要退出锁所在的最外层范围,而不仅仅是Pulse中的那个。 |
![]() |
6
1
你能重构成一个普通的消费者/生产者队列吗?这样就可以在一个类中处理加密、解密和线程信号,所以不需要传递公共锁。然后,可以通过委托来处理消隐过程。如果你愿意,我可以举个例子。 |