2009-11-08 89 views
-1

我遇到过(对我来说)很奇怪的问题。在我的应用程序中,当按下开始按钮时,所有线程都被激活,当按下停止按钮时,所有线程被中止并且所有集合被清除。 这一切都发生在主线程,而其他过程有自己的线程或通过线程池运行。不过,今天我用ReaderWriterLockSlim替代了ReaderWriterLock,很少,当我按下“停止”按钮时,应用程序将冻结。在打破所有我可以看到coed卡在行this.someobject.TryEnterWriteLock(-1),当我显示的细节,变量都充满了这条消息:消息“当前线程处于睡眠,等待或加入状态” - 锁定?

“不能....因为当前线程处于睡眠,等待或加入状态“

我不明白它 - 它的主要应用程序线程。我不希望直接回答,而是建议我应该寻找什么,这是我从未见过的信息。 谢谢!

+0

请张贴一些代码示例。 – 2009-11-08 13:17:25

回答

0

不要被消息弄糊涂 - 它存在是因为调试器无法访问值 - 您的主线程被锁定。为什么它被锁定 - 没有代码就没有说法。

顺便说一句你尝试看看你的应用程序中的其他线程?

+0

但是...我在主线程中没有锁。这些方法是从不同的线程运行的,这就是为什么我询问有关当前线程的消息。 – Thomas 2009-11-08 19:46:10