我在表单中创建了一个后台工作进程..
BackgroundWorker bw = new BackgroundWorker
{
WorkerReportsProgress = true,
WorkerSupportsCancellation = true
};
另外,我在表单中有一个进度条控件(进度条最小值和最大值分别为 1 和 100)。
在我的按钮点击中,
点击事件将触发应该在后台并行运行的实际方法调用,开始显示进度条步骤....
if (bw.IsBusy)
{
return;
}
bw.DoWork += (bwSender, bwArg) =>
{
MethodCall1(); - Does some database insertions..
MethodCall2(); - Does some database select...
}
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += (bwSender, bwArg) =>
{
bw.Dispose();
};
bw.RunWorkerAsync();
进度条显示进度...
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
我面临的问题是,进度条没有步进,它静止不动并且没有进度条的进度。
我还尝试在我的实际方法中插入 bw.ReportProgress(integervalue) ,但是没有帮助。
如何让后台工作线程处理方法调用并并行显示进度条的进度,在方法调用完成后,我想结束进度条步骤。