好吧,如果您正在使用WinForms
,您可以使用后台工作者来执行循环:
//declare in form
var bw = new BackgroundWorker();
//in constructor or load write this
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(bwDoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bwProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwCompleted);
private void bwDoWork(object sender, DoWorkEventArgs e)
{
var worker = sender as BackgroundWorker;
for(int i = 0; i < 50; i++)
{
for(int e = 0; e < 50; e++)
{
for(int a : 0; a < 50; a++)
{
worker.ReportProgress(a * e * i);
}
}
}
}
private void bwProgressChanged(object sender, ProgressChangedEventArgs e)
{
var pp=e.ProgressPercentage; //now set the progress here
}
private void bwCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//set the progress to 100% etc.
}
然后正如您所指出的那样,@paqogomez
您需要调用工作人员来运行,可能是单击某些按钮等。
//may be in private void button_click(object sender, EventArgs e)
if (!bw.IsBusy)
{
bw.RunWorkerAsync();
}
您可以在此处和此处获取有关 BackgroundWorker 的更多信息。