私は現在、過度の使用中にUIの吃音を経験するアプリケーションを正常にチェックしています。アプリケーションの短命スレッドの起源
Visual Studio 2015用の拡張子Microsoft Concurrency Visualizerを使用すると、約100msの実行後に非常に多くの短命スレッドが作成され、停止することがわかりました。 残念なことに、表示されるコールスタックはclr.dll!0x98071ntdll.dll!0x634fbのようなものであり、有用な情報をどのように抽出するのかよく分かりません。
私はこれらのスレッドの目的は何か、アプリケーションのコードのどの部分がそれらを作成しているのか分からない。
どのように起動するのが良いかを確認するにはどうすればよいですか?コードで
、私は仕事の一握り、QueueUserWorkItemsの他、平野スレッドのインスタンスの数十、いくつかのSystem.Threading.Timer &でSystem.Timers.Timer、無反応性の拡張機能をgrepすることができました。私はそれらのすべてのブレークポイントを置くが、私はいくつかが不足しているようだ...
私はそれらがスレッドのプールからのものだとは思わない彼らは同期のビジュアライザではなく、後で別のIDを持つものが作成されます。しかし、私は誤解を招くかもしれない。
また、いくつかのサードパーティのライブラリとJuggerNETで生成されたコードを使用しているため、アプリケーション自体にも原点がありません。
これは盲目的な推測ですが、おそらくGCスレッドですか? – Talonj
ありがとうございました。 [Fundamentals of Garbage Collection](https://msdn.microsoft.com/en-us/library/ee787088(v)によると、それを引き起こしたスレッドを実行するGCは新しいスレッドを生成しません) = vs.110).aspx)? (私はが有効になっているbtwを持っていません) –
投稿のコメントではなく、コメントにコメントを入れてください - ほとんどの読者はサインインや投票をしないので、ほとんどの読者にとって興味がありません。私は個人的には、とにかく仕事を下降させないよう訴えるとは思わない。 – halfer