我有进度条,我正在从其他班级的方法更新。
我的问题是,它仅在方法完成得太100%时才更新,而不会像我期望的那样在while循环的每次迭代时更新。
按照我的代码,我没有使用BackgroundWorker
。如果没有我的代码我将不满意
名为Creator的类,在该类中,我具有名为create的方法,该方法具有很长的while循环:
public void create(IProgress<int> progress){
while(startTime < endTime){
...
startTime += steps;
progress.Report((startTime/endTime)*100);
}
}
在主要形式中,我有该方法:
void UpdateProgressBar(int value)
{
//This code is invoked on the UI thread
progressBar.Value = value;
}
然后像这样直接调用create方法:
Creator creator = new creator();
var progress = new Progress<int>(UpdateProgressBar);
Task.Run(() => creator.create(progress);