我注意到许多应用程序都会进行“更新...”当他们发出HTTP请求时,在屏幕顶部显示动画。在等待异步请求返回的同时,如何在我的应用程序中实现这一点?
我认为发起请求的方法以某种方式触发了动画,而处理最终响应的方法则停止了动画。或者当有网络流量时,它会自动检测?
发布于 2011-03-18 23:21:22
这是一个隐藏的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;
...
}根据评论中的性能建议进行了更新。谢谢
发布于 2011-03-19 00:47:18
使用ProgressBar.IsIndeterminate会占用超过60%的CPU资源。它可能会杀死一些应用程序(如果它们需要做大量的CPU周期),或者只是耗尽电池。
替代方案描述为here
发布于 2011-03-19 23:41:23
我还建议使用Silverligt Toolkit的Progressbar,由于性能原因(它运行在与UI不同的线程上,可以读取更多的deatil here)
https://stackoverflow.com/questions/5354041
复制相似问题