【发布时间】:2009-09-06 06:12:31
【问题描述】:
我创建了一个工作流,并通过 WorkflowInstance.Run() 运行它。 这个工作流程有很多书签,我希望能够查询它 书签负责当前的空闲状态。
我该怎么做?
谢谢
【问题讨论】:
标签: c# workflow workflow-foundation workflow-foundation-4
我创建了一个工作流,并通过 WorkflowInstance.Run() 运行它。 这个工作流程有很多书签,我希望能够查询它 书签负责当前的空闲状态。
我该怎么做?
谢谢
【问题讨论】:
标签: c# workflow workflow-foundation workflow-foundation-4
适用于工作流 4.0
您可以从 WorkflowInstance 中获取 Bookmarks
IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks();
只会列出活动的书签,即实际上正在等待某事的书签。在没有并行活动的顺序工作流中,它会告诉您正在等待的活动。但在许多情况下,等待输入的书签不止一个。你无法分辨是哪一个导致了偶像状态。
您可以通过将某些内容与 WorkflowInstance.OnIdle 事件挂钩来获取更多信息。这不是一个真正的 .NET 事件,但它完成了同样的事情。这不会告诉您确切为什么会进入空闲状态,但希望知道时间会告诉您更多信息。
适用于工作流 3.0
我不确定这是否会有所帮助,但由于您有一个 WorkflowInstance,您可以通过调用 GetWorkflowQueueData() 来向它请求 WorkflowQueueInfo 对象的集合。 WorkflowQueueInfo 类将告诉您哪些活动订阅了队列以及队列中是否有项目。一个订阅了活动的空队列可以告诉你你需要什么。这些活动正在等待某些东西,但无事可做。那应该是您要查找的书签。
【讨论】: