我需要Windows窗体应用程序的进度条,但我的过程不是长度特定的,所以我不能将最大值添加到进度条。如何在非长度特定任务或并行循环中使用进度条?
我必须用LongProcess类Run方法运行时间增加进度条值。
void start_click()
{
button1.Enabled=false;
Task.Factory.StartNew(()=>{
Parallel.Foreach(files,f=>{
LongProcess process =new LongProcess(); // Long-running process (is not my control)
process.Run(f);
//progressBarValueIncrement();
});
}).ContinueWith(t=>{
// completed
BeginInvoke(new Action(() => button1.Enabled=true));
});
}
我该如何执行此操作?
您可以使用循环进度条,这说明只是一些正在进行中,你也可以近似您的应用程序运行时间,并在最后一步停止,然后在完成进度时停止它。 – 2012-02-10 13:07:02
也许我在这里错过了一些东西,但是如果您知道使用foreach迭代的文件数量,这不是每次完成一次的计数增加1 /计数? – 2012-02-10 13:34:59
@MarkSmith而过程 – oguzh4n 2012-02-10 13:40:08