您可以BackgroundWorker()@H_403_2@用来解决这类问题。
首先定义一个类的全局变量,BackgroundWorker()@H_403_2@ 例如
private BackgroundWorker bgw;
@H_403_2@
然后在执行查询(如button1_Click()@H_403_2@事件或其他任何内容)的过程中使用下面的代码。
bgw = new BackgroundWorker();
bgw.WorkerReportsProgress = true;
bgw.ProgressChanged += new ProgressChangedEventHandler(bgw_ProgressChanged);
bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
bgw.RunWorkerAsync();
@H_403_2@
现在定义如下方法:
void bgw_DoWork(object sender, DoWorkEventArgs e)
{
//Your time taking work. Here it's your data query method.
CheckSsMissingDate();
}
void bgw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//Progress bar.
progressBar1.Value = e.ProgressPercentage;
}
void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//After completing the job.
Message@R_927_2419@.Show(@"Finished");
}
@H_403_2@