2010-12-22 5 views
0

현재 Thread.Sleep (2500)을 사용하여 웹 서비스에 연결할 수있을 때까지 모의 레이어에서 네트워크 호출을 시뮬레이트합니다. 진행률 표시 줄 (예, Jeff Wilcox 진행률 표시 줄 사용 중)을 사용하여 팝업을 만들었습니다 (this example 기준). 성공적으로 나타납니다. 그러나 Thread.Sleep()을 사용하여 팝업을 불러올 때 팝업이로드되지 않는 문제가 발생합니다. Thread.Sleep()이 리턴 될 때까지 진행 막대가 나타나지 않습니다. 다가오는 데모 작업을 위해이 작업을 수행하려고합니다. 그래서 서비스를 기다리지 않고 Thread.Sleep()을 사용하여 작업하게하는 방법을 생각해보고 싶습니다.WP7 팝업이 thread.sleep 전에 표시되었지만 이후에 나타날 때까지

답변

4

Thread.Sleep은 메소드가 반환 될 때까지 팝업이 표시되지 않도록하는 UI 스레드를 대기 상태로 만듭니다. TimeSpan이 경과 한 후에 DispatcherTimer 클래스를 사용하여 UI 스레드에서 다시 전화를 걸거나 절전 모드를 수행하는 새 스레드를 만들 수 있습니다.

이것은 네트워크 작업을 할 때 유용한 교훈입니다. UI 스레드를 차단하지 마십시오.

+0

더 좋았을 것 같지 않았습니다. – KeithS

+0

감사합니다. 그들은 WP7에서 모두 비동기이기 때문에 실제 서비스로 UI 스레드를 차단할 수 있다고 생각하지 않습니다. Thread.Sleep() UI 스레드를 차단하는 이해하지만 Thread.Sleep() 전에 내 ShowPopup() 메서드를 호출합니다. 아이디어는 팝업을 표시하고 UI 스레드에서 차단한다는 것이 었습니다. UI 스레드에 있기 때문에 애니메이션이 작동하지 않을지라도 생각했습니다. – CACuzcatlan

+0

그래, 100 % 확신 할 수는 없지만 .Show 메서드 (또는 팝업을 표시하는 것은 무엇이든)는 팝업 표시 작업 만 대기하는 것으로 생각합니다. 실제로 UI 스레드를 포기할 때까지 실제로 팝업을 그리지는 않습니다. . –

관련 문제