在c#中查询正在运行的Windows工作流程

时间:2014-09-30 13:11:49

标签: c# asp.net workflow workflow-foundation-4

我有一个预定的工作(在asp.net中),它使用WorkflowApplication及其Run方法创建并运行多个工作流。由于Run是一个异步方法,因此在自己的工作流线程中启动工作流后,作业会快速返回,这太棒了!

但是,在所有先前的工作流程完成(或失败)之前,我不希望作业创建和运行新的工作流程。我的问题是,有没有办法查询工作流运行时以运行工作流?

我没有使用与我的工作流程相关的持久性商店,因为他们不需要保留。

增加: 启动工作流的(Web)线程(Web作业)将在工作流完成之前结束其工作。一个新的工作线程在几分钟后再次出现,这个线程需要知道前一个'线程启动了工作流程。如果我将跟踪数据(使用跟踪扩展)写入数据库,我相信2.nd线程可以查询它,但我宁愿避免使用数据库。有没有办法询问工作流运行时是空闲还是活动?

1 个答案:

答案 0 :(得分:0)

您使用工作流跟踪扩展程序。这会报告工作流程的状态。它是一个推送系统,因此您不必查询工作流程,而是使用TrackingParticipant,在检测到您要查找的状态时发出主线程信号。

http://msdn.microsoft.com/en-us/library/ee513992(v=vs.110).aspx