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

Ada*_*dam 7 c# workflow workflow-foundation workflow-foundation-4

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

我怎么能这样做?

谢谢

Mik*_*Two 6

对于工作流程4.0

您可以从WorkflowInstance获取书签

IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks();
Run Code Online (Sandbox Code Playgroud)

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

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

for workflow 3.0

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