如何实现后台进程

时间:2013-05-02 10:07:44

标签: c# wcf

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

3 个答案:

答案 0 :(得分:2)

我的选择是:


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


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

答案 1 :(得分:1)

了解One-Way来电和回拨。

答案 2 :(得分:1)

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

编辑:

了解如何使用Background worker。在您的服务中使用它来运行繁重的工作。运行后台线程时,服务应返回响应。然后在表中更新,您可以记录该线程所在工作的状态。 在您的应用程序上实现timer并回调该服务以读取该表的状态。