2011-03-18 52 views
0

我注意到許多應用程序在進行HTTP請求時在屏幕頂部執行「更新...」動畫。我在等待異步請求返回時如何在我的應用程序中發生這種情況?如何在HTTP請求期間顯示更新動畫

我認爲啓動請求的方法以某種方式觸發動畫,並且處理最終響應的方法會停止它。還是它會自動檢測何時存在網絡流量?

回答

3

這是一個隱藏的ProgressBar,設置爲不確定模式得到的點。

當您開始請求時顯示它,然後在請求完成時將其隱藏。 (或者如果出錯)

有關性能考慮事項請參閱下面的註釋&的替代方案。

例如

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

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

與意見建議的性能更新。謝謝

+0

啊。我認爲這是更有趣的。謝謝。 – Edgar 2011-03-18 15:23:29

+0

順便說一下,我不得不從響應處理程序中執行'Deployment.Current.Dispatcher.BeginInvoke(HideLoader);',因爲我的代碼的寫法和用於顯示它的類似調用的方式。 – Edgar 2011-03-18 15:32:31

+4

請注意 - 如果您在不確定模式下使用ProgressBar,請使用其中一種高性能變體 - http://www.jeff.wilcox.name/2010/08/performanceprogressbar/ - 現在也在SL WP7 Toolkit中。 – Stuart 2011-03-18 16:17:17

1

使用ProgressBar.IsIndeterminate消耗60%以上的CPU資源。它可能會殺死一些應用程序(如果他們需要大量CPU週期)或者耗盡電池。

替代描述here

1

我也建議使用進度從Silverligt Toolkit,出於性能的考慮(在其上運行diferent線程比UI,更deatils可以讀here

相關問題