使用 Windows 工作流时是否有任何内置 UI 功能。
假设我有一个需要一个小时才能运行的工作流程,其中不同的活动一直在发生。在运行时,我想查看当前处于活动状态的活动、已经运行的活动等。
我是否必须自己编写此 UI 或 WF 是否具有以图形方式显示工作流状态等的内置功能?
使用 Windows 工作流时是否有任何内置 UI 功能。
假设我有一个需要一个小时才能运行的工作流程,其中不同的活动一直在发生。在运行时,我想查看当前处于活动状态的活动、已经运行的活动等。
我是否必须自己编写此 UI 或 WF 是否具有以图形方式显示工作流状态等的内置功能?
为了找出工作流所处的状态,我订阅了 WorkflowIdled 事件并执行以下操作:
private delegate void UpdateDelegate();
void workflowRuntime_WorkflowIdled(object sender, WorkflowEventArgs e)
{
StateMachineWorkflowInstance stateMachineInstance = new StateMachineWorkflowInstance(MyManager.WorkflowRuntime, MyInstance.Id);
UpdateDelegate LclUpdateDelgate = delegate()
{
// Update the workflow state on the form thread
if (stateMachineInstance.CurrentState != null)
LabelWorkflowState.Text = stateMachineInstance.CurrentStateName;
else
LabelWorkflowState.Text = "";
};
this.Invoke(LclUpdateDelgate);
}
在 MSDN 上查看此代码示例:
没有内置的用户界面。
但是您可以通过订阅 WorflowInstance 上的事件(请参阅其他答案)或使用Tracking Service来创建一个。
前者很容易设置为快速解决方案,但后者将与多个主机进程和长时间运行(卸载)的工作流实例一起使用。