事前に申し訳ありません - 私はこの問題に取り組むには適切な人ではありませんが、今日は大きな嵐があり、インターン(私)だけが私から来るのに十分なほど狂っていましたチーム。生まれているスレッドを追跡する
簡単なこと - 特定のタスク(ファイルをデシリアライズし、データに基づいて特定の呼び出しを行う)を約115回繰り返した後、いくつかの他のタスクのいずれかがアプリケーションをクラッシュさせるようなしきい値があります。アプリケーションをクラッシュさせる可能性のあるこれらの3つのアクションはすべて、新しいウィンドウの表示を伴います。
私が推測した最良の推測は、私が繰り返しクリックしたときのWindowsタスクマネージャのスレッド数を参考にしています。私たちはスレッドを正しく処分していないということです。数式は、ファイルを読み込むたびにハングする(実際にはもっと多く作成され、ほとんどが消え去る)4つのスレッドが生成されているようです。私はコードをステップ実行し、プロセスが進むにつれスレッドの数を見ることができるかどうかを知りたいです。今はスレッドがいつどこで開始されているのか本当に知りませんが、もし私がしたら、彼らのロジックに従うことができ、彼らが不必要に動作し続けていないことを確認することができます。
ありがとうございます!
コードが停止するとスレッドが消えます。あなたはデバッガでスレッドを追跡することはできますが、それはあなたに役立つとは思わない。 –
あなたがThreadPoolを使用していない理由は何ですか?あなたが言っていることに基づいて、それはこの問題を解消するでしょう。スレッドを再利用する方が、スレッドを常に作成/廃棄するよりも(スレッドが正しく配置されていても)再利用する方が良いです。 –
そして、雪にもかかわらず働くことに+1します:) –