带有计时器的进度条

本文关键字:计时器 | 更新日期: 2023-09-27 18:03:41

我有一段代码,它从我的SQL服务器到DataTable获取可用的服务器实例。这需要一段时间才能实现人口增长。所以我尝试添加一个进度条来显示时间。有一些方法可以做到这一点:

1。使用后台worker
2.使用定时器

我使用了计时器,但是进度条没有动画。

我的代码是(WinForm):
private void frmCodeGenerator_Load(object sender, EventArgs e)
    {
        Cursor.Current = Cursors.WaitCursor;
        tmrWaiting.Enabled = true;
        tmrWaiting.Start();
        //List all available servers
        PopulateServerInstances();
        //List all default namespaces to import
        //Set the target folder default path tec.
        tmrWaiting.Stop();
        Cursor.Current = Cursors.Default;
    }
private void tmrWaiting_Tick(object sender, EventArgs e)
        {            
            pbWaiting.Value++;
        }

光标从正常状态变为等待状态,但进度条没有。我做得对吗?

带有计时器的进度条

您的Load事件处理程序,这是运行在您的UI线程,正在调用PopulateServerInstances,这可能是阻塞,而加载数据。您需要在BG线程上完成这项工作,以便您的UI线程可以继续更新UI。BackgroundWorker是你最好的选择,因为它支持在UI线程上更新进度信息。