2009-11-08 81 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