2

如何在 C# 中运行后台进程?我的要求是从应用程序触发一个运行超过 30 分钟的进程。我必须不时在屏幕上显示更新的进程状态。任何人都可以建议我执行此操作的选项吗?我在应用程序中使用了 WCF 服务。

4

3 回答 3

2

我的选择是:


1. 使用后台工作进程并执行长时间运行的操作,即使用加载图像显示工作正在进行中。由于您使用 wcf 服务来获取响应,因此很难显示实际的工作进度。


2. 使用ThreadPool.QueueUserWorkItem并将长时间运行的进程委托给线程池线程。然后使用Dispatcher.BeginInvoke更新 UI。

于 2013-05-02T10:57:15.970 回答
1

阅读有关单向调用和回调的信息。

于 2013-05-02T10:16:28.817 回答
1

如果在 wcf 服务中执行长进程,则使用后台工作线程运行它。实现通知进度并更新数据库上的特殊表(如果有可用表)。创建 wcf 服务的另一个方法,该方法检查并返回进程的状态(通过读取表)并从应用程序调用它。

编辑:

阅读有关如何使用后台工作者的信息。在您的服务中使用它来运行繁重的工作。当您运行后台线程时,服务应该返回一个响应。然后在表中更新您可以记录线程所在工作的状态。在您的应用程序上实现一个计时器并回调服务以读取表的状态。

于 2013-05-02T11:08:11.220 回答