디버거를 실행하는 동안 UI가 차단되는 .NET Forms 응용 프로그램에서 문제를 진단하기가 어렵습니다.UI VS2010에서 디버깅하는 동안 블로킹
블록이 임의적이며 차단되는 동안 디버거 내에서 일시 중지 단추를 클릭하면 블록이 해제 될 때까지 일시 중지가 실제로 완료되지 않습니다.
디버거 외부에서 프로그램을 실행하고 차단하고 실행하지 않아도됩니다.
프로필러 (개미)를 사용하여 블록을 찾으려고 시도했지만이 상태에서는 차단되지 않으며 프로필러 보고서에 아무 것도 표시되지 않습니다.
응용 프로그램에는 소켓 연결 시간 초과를 처리하기 위해 백그라운드 스레드가 실행됩니다 (Threading.Timer는 UI와 통신하지 않습니다).
네트워크 작업에서 BeginXXX
호출을 사용하고 있습니다.
사용자를 위해 발생하지 않기 때문에이 문제를 찾기가 어려워 보이지만 이러한 블록이 발생하는 동안 프로그램의 다른 부분을 디버깅하는 것은 어렵습니다.
는 UI의 주요 초점은
내가 가능성이 발견에 볼 수 있나요, UI 스레드에서 주 개체 (POSTerminal
)에서 검색 자신의 연결 상태 기계의 그리드를 표시하는 사용자 컨트롤입니다 디버거/UI 차단 사이의 연결?
예, 불행히도 내가 말한 것처럼 블록이 완료 될 때까지 일시 중지조차 할 수 없습니다. 어느 시점까지 블록이 사라 졌는가? –