如何查询工作流实例的执行状态

时间:2009-09-06 06:12:32

标签: c# workflow workflow-foundation workflow-foundation-4

我创建了一个工作流程,并通过WorkflowInstance.Run()运行它。 这个工作流程有很多书签,我希望能够查询它 bookmark负责当前的空闲状态。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:6)

for workflow 4.0

您可以从WorkflowInstance

获取书签
IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks();

仅列出活动书签,即实际等待某些内容的书签。在没有并行活动的顺序工作流中,它将告诉您正在等待的活动。但在许多情况下,会有多个书签等待输入。你不知道哪一个引起偶像状态。

您可以通过将某些内容挂钩到WorkflowInstance.OnIdle事件来获取更多信息。这不是一个真正的.NET事件,但它完成了同样的事情。这不会告诉你为什么你会达到空闲状态,但希望知道时间会告诉你更多。

for workflow 3.0

我不确定这会有所帮助,但由于你有一个WorkflowInstance,你可以通过调用GetWorkflowQueueData()来询问它是否有一组WorkflowQueueInfo对象。 WorkflowQueueInfo类将告诉您哪些活动订阅了队列以及队列中是否包含项目。订阅了活动的空队列可以显示您的需求。那些活动正在等待,但没有什么可做的。那应该是你要找的书签。