2012-06-19 3 views
0

현재 코드를 볼 수있는 도구가 있습니까? 내 WPF 응용 프로그램의 UI 알림/예외없이 매달려 있기 때문에이 필요합니다. 문제를 디버그 할 수 없습니다. 시스템은 유휴 상태가되어 프로세스를 명시 적으로 종료해야합니다. 어떤 제안. 참고하시기 바랍니다 .. 많은 타사 도구가 사용되고 있습니다.UI 정지 문제 식별

답변

1

당신은 windbg를 사용할 수있는 약간의 도움이 완전히 투자하기 위해 프로세스의 모든 측면을 게이트하십시오. 제 생각에는 학습 곡선이 포함되어 있지만,이 도구에 익숙해지는 것은 개발자에게 중요합니다. 작업 관리자 &을 통해 실행중인 프로세스의 전체 메모리 덤프를 시작하려면 & debugging tools for windows을 다운로드하십시오. 이 작업을 완료하면 자습서를 한 번 살펴보십시오 & 의견을 게시하면 도움을 드리겠습니다.

+0

설치하는 중입니다. – gaurawerma

+0

"심볼 파일을 찾을 수 없습니다"라는 말을 계속합니다 – gaurawerma

+0

심볼 경로를 지정 했습니까? – Johnv2020

0

메인 스레드를 사용하는 메모리/CPU 소모 작업을 수행하는 경우 UI는 아무런 예외없이 유휴 상태가됩니다.이 문제를 해결하려면 시간 소모적 인 작업을 수행하기 위해 BackgroudWorker/Separate 스레드를 사용하십시오. 얼다.

+0

감사합니다. 그게 이미 처리되었습니다 – gaurawerma

2

나는 당신이 이미 테스트 한 확실하지 오전 어쩌면 내가 잘못하지만 대답 :

하면 Visual Studio에서 일시 정지 기능을 사용하기 위해 노력했다. 응용 프로그램의 모든 스레드를 일시 중지하고 스레드가 일시 중지 된 스레드를 볼 수 있습니다. 또한 각 스레드를 단계별로 실행하여 가능한 문제점을 찾을 수 있습니다. 내가 과거에 있었다

일부 문제 다음 BackgroundWorker

  • 잘못된를 사용하여 UI 스레드 백그라운드 스레드로 작업
    • 파견 큰 덩어리에서 즉시 실행

      • 너무 많은 행동 UI 스레드가 원하는 정보를 수집 할 수 없도록 모델을 잠그십시오.
        • M ViewModel의 데이터는 잠금 속성없이 백그라운드 스레드에 의해 변경 될 수 없습니다.

      일부 흥미로운 링크는 WPF 및 멀티 스레딩에 대해 읽기 :

      는 희망이 당신에게

  • +0

    방금 ​​프로세스를 버리고 Visual Studio에서 덤프 디버깅을 시도하여 교착 상태에 빠졌습니다! – gaurawerma

    +0

    'lock' 키 동작을 사용하면 교착 상태 방지에 도움이 될 수 있습니다. – hwcverwe

    +0

    디버거를 일시 중지 할 때마다 (obj) 문을 잠그기 위해 걸립니다. – gaurawerma