是否可以在单独的线程上运行 Windows Phone 8 中的进度条,或者使用 Dispatcher 类?
谢谢
是否可以在单独的线程上运行 Windows Phone 8 中的进度条,或者使用 Dispatcher 类?
谢谢
把你的进度条放进去App.xaml
<ProgressBar IsIndeterminate="True" HorizontalAlignment="Stretch" VerticalAlignment="Top" Loaded="ProgressBar_Loaded" Visibility="Collapsed" />
& 然后把这个 c# 代码放到你的App.xaml.cs
public partial class App : Application
{
// progress bar
public ProgressBar m_progressBar;
// some code......
private void ProgressBar_Loaded(object sender, RoutedEventArgs e)
{
m_progressBar = (ProgressBar)sender;
}
}
在 a 中定义一个单独的方法class
public static Class RestMethods
{
public static void ShowProgress(bool show)
{
if (show)
((App)Application.Current).m_progressBar.Visibility = Visibility.Visible;
else
((App)Application.Current).m_progressBar.Visibility = Visibility.Collapsed;
}
}
现在你有单独的方法来显示或隐藏进度条
打电话给它,所以它不会冻结你UI
--->
Dispatcher.BeginInvoke(() => { RestMethods.ShowProgress(true); }); // to show
Dispatcher.BeginInvoke(() => { RestMethods.ShowProgress(false); }); // to hide
WindowsPhone 中的 UI 控件可以仅从 UI 线程进行更新,并且无法ProgressBar
从单独的(不是 UI)线程进行更新。Dispatcher
只是将编组从工作线程到 UI 线程的调用。