マルチスレッド アプリケーションで Mac 上の SL に関する奇妙な問題に取り組もうとしています。私のアプリケーションでは、ThreadPool を使用して、さまざまな作業項目をキューに入れています。HandleRequest
経由でのみ呼び出されるメソッドがありThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest))
ます。
アプリケーションの実行速度が非常に遅かったため、Windows からリモート デバッグし、アプリケーションを一時停止して、限られたリソースで待機しているために HandleRequest でスタックしているスレッドを見つけました。そこには別の問題があるので、それは問題ありませんが、メイン スレッドで待機している HandleRequest があることにも気付きました。どうすればそれが起こりますか?ThreadPool がバックグラウンドでワーカー スレッドを作成し、その上でタスクを実行していると思いました。
これは、ThreadPool がワーカー スレッドを使い果たしたため、呼び出し元のスレッドを使用してコールバック メソッドを実行しようとしたために発生しているのでしょうか?