【发布时间】:2014-09-30 13:11:48
【问题描述】:
我有一个计划的作业(在 asp.net 中),它使用 WorkflowApplication 及其 Run 方法创建并运行多个工作流。由于 Run 是一个异步方法,因此在他们自己的工作流线程中启动工作流后,作业会快速返回,这很棒!
但是,我不希望作业在所有之前的工作流完成(或失败)之前创建和运行新的工作流。因此,我的问题是,有没有办法查询工作流运行时以运行工作流?
我没有使用与我的工作流相关的持久存储,因为它们不需要持久化。
补充: 启动工作流的(Web)线程(Web 作业)将在工作流完成之前结束其工作。几分钟后,一个新的作业线程再次启动,该线程需要知道前一个线程启动的工作流的状态。如果我将跟踪数据(使用跟踪扩展)写入数据库,我相信 2.nd 线程可以查询它,但我宁愿避免使用数据库。有没有办法询问工作流运行时是空闲还是活动?
【问题讨论】:
-
我已经通过 Completed 或 Idled 回调使用 Set() 使用 AutoResetEvent(任何类型的 Mutex 类线程同步器工作)阻塞调用线程来完成此操作。或者,当然,您可以只使用同步运行的msdn.microsoft.com/en-us/library/dd465567(v=vs.110).aspx。取决于你的要求。
标签: c# asp.net workflow workflow-foundation-4