如何在一段时间后启动进度条

  • 本文关键字:启动 一段时间 wpf
  • 更新时间 :
  • 英文 :


我有带有进度条的 wpf 应用程序。我想在 1 分钟后启动它。我的进度条正常工作,只想在特定时间段后开始。

进度条的代码

public login()
{
  InitilizeComponent()
  DispatcherTimer timer= new Timer(1000);
  timer.Elapsed+= timer_Elapsed;
  timer.start();
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
thsi.Dispatcher.Invoke(DispatcherProperty.Normal,(Action)() =>
{
    if (progressBar<20)
     {
        progressBar.value+=1;
     }
      else
      {
             timer.stop();
      }
} 
)
}

您可以使用 async/await 方法和计时器的组合来实现此目的:

调度程序计时器计时器进度条;

    public login()
    {
        InitializeComponent();
        //Create the timer
        timerProgressBar = new DispatcherTimer();
        timerProgressBar.Interval = new TimeSpan(0,0,1);
        timerProgressBar.Tick += timerProgressBar_Tick;
        //Start waiting
        WaitForProgressBar();
    }
    void timerProgressBar_Tick(object sender, EventArgs e)
    {
        this.Dispatcher.Invoke(() =>
            {
                if (progressBar.Value < 20)
                    progressBar.Value++;
                else
                    timerProgressBar.Stop();
            });
    }
    /// <summary>
    /// Begins waiting for 1 minute before starting the timer.
    /// </summary>
    public async void WaitForProgressBar()
    {
        await Task.Run(() => System.Threading.Thread.Sleep(new TimeSpan(0, 1, 0)));
        timerProgressBar.Start();
    }

使用异步方法,这将使 UI 在等待期间保持响应。如果这不是预期的结果,则只需将异步方法更改为同步即可。

相关内容

最新更新