7

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

我该怎么做?

谢谢

4

1 回答 1

6

对于工作流 4.0

您可以从 WorkflowInstance 获取书签

IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks();

只有活动的书签,即实际上正在等待某事的书签才会被列出。在没有并行活动的顺序工作流中,它会告诉您正在等待的活动。但在许多情况下,等待输入的书签不止一个。你无法分辨是哪一个导致了偶像状态。

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

对于工作流 3.0

我不确定这会有所帮助,但是由于您有一个 WorkflowInstance,您可以通过调用 GetWorkflowQueueData() 来向它请求 WorkflowQueueInfo 对象的集合。WorkflowQueueInfo 类将告诉您哪些活动订阅了队列以及队列中是否有项目。一个订阅了活动的空队列可以告诉你你需要什么。这些活动正在等待某些东西,但无事可做。那应该是您要查找的书签。

于 2009-09-06T07:39:56.290 回答