我有一个相当长的运行过程,现在我的应用程序冻结了一段时间。
我如何将此过程包装在后台工作人员中并为用户提供状态。
我知道理想情况下,流程本身必须报告其进度,但我认为我无法构建它。并不是我无法更改该流程中的代码,而是我不想更改太多。
如果我可以在后台工作人员中启动该过程以便我的应用程序保持响应,我会很好。现在我可以做到了。但问题是,有没有一种简单的方法可以让一些进度条做一些事情来表明进程仍在运行?
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
StartLongRunningProcess();
}
我的代码现在就像上面一样,我想知道如何以某种方式包装该过程以更新进度条?或者有没有一种简单的方法可以从这个过程中获取更多信息而不完全改变它的代码?在那个长时间运行的进程中,有一个修改过的行计数器正在运行,但它只在完成时返回一个值。
我知道 backgroundworker 和它的 ReportProgress 选项是如何工作的,但问题是该进程只是运行并且在运行时不提供任何反馈。