且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在将行添加到datagridview时更新进度条?

更新时间:2023-12-02 22:26:46

BackgroundWorker是正确的方法:它很简单:

BackgroundWorker is the right way to go: it's pretty easy:
void DoSomethingInTheBackGround()
    {
    BackgroundWorker work = new BackgroundWorker();
    work.WorkerReportsProgress = true;
    work.DoWork += new DoWorkEventHandler(work_DoWork);
    work.ProgressChanged += new ProgressChangedEventHandler(work_ProgressChanged);
    work.RunWorkerCompleted += new RunWorkerCompletedEventHandler(work_RunWorkerCompleted);
    work.RunWorkerAsync();
    }

void work_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
    myTextBox.Text = "Done!";
    }

void work_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    myTextBox.Text = e.ProgressPercentage.ToString();
    myProgressBar.Value = e.ProgressPercentage;
    }

void work_DoWork(object sender, DoWorkEventArgs e)
    {
    BackgroundWorker work = sender as BackgroundWorker;
    // Do your work here, but don't access any Controls!
    for (int i = 0; i < 100; i++)
        {
        //...
        work.ReportProgress(i);
        }
    }