3

従来の製品の1つはWinformsアプリケーションであり、バックグラウンドスレッドを使用する代わりに、メインUIスレッドですべてを実行します。このメインスレッドで実行されている一定のループがあり、20ミリ秒ごとにApplication.DoEvents()を呼び出します。たまに、アプリケーションはDoEvents呼び出しでハングします。私の質問は、どのキューに入れられたイベント呼び出しでコードがハングしているのかをどのように見つけるのですか?

PSプロセス内のすべてのスレッドのスタックトレースを取得するために使用できるツールを誰かが知っていますか?

また、これは本番クライアントでのみ発生しており、今すぐ修正する必要があります。クライアントにVSをインストールする可能性もありません。

4

2 に答える 2

2

Visual Studio でそれを行うことができます。プロセスにアタッチし、実行を中断して、スレッド ウィンドウを開くだけです。

メニュー: デバッグ -> Windows -> スレッド

于 2011-05-11T19:02:25.533 に答える
0

探していたツールを見つけました。WinDbg

現在実行中のWindowsプロセスのスタックトレースを取得できます。ただし、そのアプリケーションにはPDBファイルが必要です。

于 2011-05-12T00:59:42.713 に答える