如何在不冻结UI的情况下暂停应用程序

时间:2014-04-08 03:30:27

标签: c# windows-phone-8 progress-bar

在我的点击事件中,我想在一定时间内显示不确定的进度条,然后恢复应用程序。我遇到的问题是我无法显示进度条。有人可以帮忙吗?

private void RunTestButton_Click(object sender, RoutedEventArgs e)
    {
        if (testRunning == false)
            {
                testRunning = true;

                //Set progress bar visibility
                PerformanceProgressbar.Visibility = Visibility.Visible;
                PerformanceProgressbar.IsIndeterminate = true;

                //Tell the app to pause for 5 seconds so the user sees the progress bar


                //Set progress bar visibility
                PerformanceProgressbar.IsIndeterminate = false;
                PerformanceProgressbar.Visibility = Visibility.Collapsed;

                testRunning = false;
            }
    }

2 个答案:

答案 0 :(得分:1)

您可以致电Task.Delay ..和await结果:

await Task.Delay(5000);

您需要确保将活动标记为async

private async void RunTestButton_Click(object sender, RoutedEventArgs e)

答案 1 :(得分:0)

PerformanceProgressbar是控件,所以你应该把它放在你的页面上(也使用淡入淡出)。

但是如果你需要在UI线程上做一些任务(你真的需要吗?)我建议你通过在页面上显示半透明边框来淡化你的页面,并在状态栏中显示ProgressIndicator。它的系统对象即使应用程序被冻结也会运行。