2011-03-18 5 views
0

나는 많은 애플 리케이션이 HTTP 요청을하는 동안 화면 상단에서 "Updating ..."애니메이션을 보았다. 비동기 요청이 반환 될 때까지 기다리는 동안 앱에서 어떻게 만들 수 있습니까?HTTP 요청 중 애니메이션 업데이트 표시 방법

요청을 시작하는 메소드가 어떻게 든 애니메이션을 트리거하고 최종 응답을 처리하는 메소드가이를 중지한다고 가정합니다. 아니면 네트워크 트래픽이있을 때 자동으로 감지합니까?

답변

3

으로 설정되고 점을 얻으려면 미확인 모드로 설정하십시오.

요청을 시작하면 표시하고 요청이 완료되면 숨 깁니다. (또는 오류가있는 경우)

성능 고려 사항은 아래의 의견을 참조하십시오. &

void dl_DownloadStringCompleted2(object sender, DownloadStringCompletedEventArgs e) 
{ 
    progress.Visibility = Visibility.Collapsed; 
    progress.IsIndeterminate = false; 
    ... 
} 

webclient.DownloadStringAsync(new Uri("http://example.com")); 
progress.IsIndeterminate = true; 
progress.Visibility = Visibility.Visible; 

주석의 성능 제안으로 업데이트되었습니다. 감사합니다

+0

아를 (이 UI에 비해 개의 다른 스레드에서 실행을 더 deatils는 here를 읽을 수 있습니다). 나는 그것이 더 상상력이 있다고 생각했다. 감사. – Edgar

+0

그건 그렇고, 코드를 작성한 방식과 그것을 보여주기위한 비슷한 호출 때문에 응답 처리기에서 Deployment.Current.Dispatcher.BeginInvoke (HideLoader);를해야했습니다. – Edgar

+4

참고 - ProgressBar를 불확정 모드로 사용하는 경우 고성능 변형 중 하나를 사용하십시오 - http://www.jeff.wilcox.name/2010/08/performanceprogressbar/ - SL WP7 Toolkit에도 포함됨 . – Stuart

1

사용 ProgressBar.IsIndeterminate는 CPU 리소스의 60 % 이상을 사용합니다. 일부 애플리케이션을 죽일 수도 있고 (CPU주기를 많이 필요로하는 경우) 배터리를 소모시킬 수도 있습니다.

대안이 here

1

나는 또한 성능 문제로 인해, Silverligt Toolkit에서의 ProgressBar를 사용하는 제안 설명

관련 문제