后台工作者报告进度c#
本文关键字:报告 工作者 后台 | 更新日期: 2023-09-27 18:16:13
我的代码:
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerSupportsCancellation = true;
worker.WorkerReportsProgress = true;
worker.ProgressChanged += new ProgressChangedEventHandler (worker_ProgressChanged);
worker.DoWork += delegate(object s, DoWorkEventArgs args)
{
ResourceConsumingFunction();
};
worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
{
Finished(true);
};
worker.RunWorkerAsync();
我希望经常报告进度,但不知道该怎么做。我不能修改resourceConsumingFunction();什么好主意吗?
如果你不能修改ResourceConsumingFunction
,那你就倒霉了。
既然ResourceConsumingFunction
做了所有的工作,如果你不能修改它来报告进度,你怎么能期望能够显示进度呢?其余的代码不能神奇地猜出ResourceConsumingFunction
在完成之前要运行多长时间。
正如Øyvind knobloch - br
您需要以某种方式挂钩到ResourceConsumingFunction以度量其进度。它是创建文件,写东西到磁盘或改变可访问的变量,你可以衡量/使用作为进度值,而无需访问功能的工作?