デバッガーの実行中に UI がブロックされる .NET Forms アプリケーションの問題を診断するのは困難です。
ブロックはランダムであり、ブロックされている間、デバッガー内の一時停止ボタンをクリックすると、ブロックが解放されるまで一時停止が実際には完了しません。
デバッガーの外部でプログラムを実行するだけで試してみましたが、ブロックされず、正常に実行されます。
プロファイラー (アリ) を使用してブロックを見つけようとしましたが、この状態ではどちらもブロックされず、プロファイラー レポートには注目すべきものは何も表示されません。
アプリケーションには、ソケット接続のタイムアウトを処理するためにバックグラウンド スレッドが実行されています (Threading.Timer では、これらは UI と通信しません)。
ネットワーク操作はBeginXXX
呼び出しを使用しています。
ユーザーには発生しないため、この問題を見つけようとして困惑していますが、これらのブロックが発生しているように見える間、プログラムの他の側面をデバッグしようとすると困難になります。
POSTerminal
UI の主な焦点は、UI スレッドの State オブジェクト ( ) から接続状態を取得したマシンのグリッドを表示するユーザー コントロールです。
Debugger/UI ブロッキング間の接続を見つけるために調べることができるものはありますか?