0

是否可以在单独的线程上运行 Windows Phone 8 中的进度条,或者使用 Dispatcher 类?

谢谢

4

2 回答 2

3

把你的进度条放进去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
于 2013-06-26T14:20:01.480 回答
0

WindowsPhone 中的 UI 控件可以仅从 UI 线程进行更新,并且无法ProgressBar从单独的(不是 UI)线程进行更新。Dispatcher只是将编组从工作线程到 UI 线程的调用。

于 2013-06-26T19:53:13.683 回答