2013-04-28 28 views
5

質問:クライアントに提供されたアプリケーションでデッドロックが発生する場所をログに記録する方法や決定する方法はありますか?C#でのアプリケーションのハング/デッドロックの処理

背景:通常、コードをテストしているときにデッドロックが発生すると、Visual Studioで実行されているため、すべてをデバッグして、どのスレッドが待機しているのか、どこで、すぐに問題が発生しているのかを知ることができます。しかし、アプリケーションが非常に稀にしか動作しないような問題があります(ユニットテストや統合テストでは検出されません)。これは、実行可能バイナリのみを実行しているクライアントマシンで発生します。デバッガなしで問題になるとは言い難いので、これらの問題の報告に役立つ機能があるかどうかを知ることに興味があります。

答えて

4

タスクマネージャまたはプロセスエクスプローラからクライアントにミニダンプを作成させることができます。詳細については、this articleを参照してください。

+0

Cool。私は以前これについて知りませんでした。これはうまくいくようですが、プログラムがフリーズすると、マウスが動かなくなってもコンピュータがフリーズするので、TaskManagerにアクセスできなくなります。 Ctrl + Alt + Deleteがまだ動作しない限り、私はこれを試したとは思わない。 –