我正在使用 Windows 工作流服务,并且需要知道工作流实例何时空闲。使用http://code.msdn.microsoft.com/Windows-Workflow-b9d5ccb7作为资源,我创建了一个 TrackingParticipant 并在某些状态发生时被“通知”,例如空闲、完成、持续、恢复、卸载、删除, ETC。
我所期望的是,只有当工作流实例完成处理当前活动时,状态才会进入空闲状态。但是,即使工作流实例需要执行更多处理,它似乎也会进入空闲状态。例如,我可能会看到同一工作流实例的连续“空闲”状态。因此,“空闲”状态对我确定工作流实例何时不再处理任何活动不是很有帮助。
然而,“卸载”状态似乎给了我想要的东西。“Unloaed”状态(据我所知)仅在工作流实例没有其他要执行的活动时出现。
所以我的问题是:依靠“卸载”状态来确定工作流实例是否不再处理任何活动或者我应该使用其他一些技术是否安全?
谢谢你的帮助,埃里克