如何在C#中运行后台进程? 我的要求是从应用程序中触发一个超过30分钟的过程。我必须时不时地在屏幕上显示进程的更新状态。有人可以建议我实施这个选项吗? 我在应用程序中使用了WCF服务。
答案 0 :(得分:2)
我的选择是:
1.使用后台工作程序并执行长时间运行操作,意味着在使用加载图像显示正在进行的工作时。由于您使用wcf服务来获取响应,因此很难显示实际的工作进度。
2.使用ThreadPool.QueueUserWorkItem
并将长时间运行的进程委托给线程池线程。然后使用Dispatcher.BeginInvoke
更新用户界面。
答案 1 :(得分:1)
了解One-Way来电和回拨。
答案 2 :(得分:1)
如果在wcf服务中执行了长进程,则使用后台工作线程运行它。实现通知进度并更新数据库上的特殊表(如果有可用的话)。创建另一个wcf服务方法,该方法检查并返回进程的状态(通过读取表)并从应用程序中调用它。
编辑:
了解如何使用Background worker。在您的服务中使用它来运行繁重的工作。运行后台线程时,服务应返回响应。然后在表中更新,您可以记录该线程所在工作的状态。 在您的应用程序上实现timer并回调该服务以读取该表的状态。