2009-04-30 3 views
1

Есть ли построить в возможности пользовательского интерфейса при использовании Windows Workflow ..пользовательский интерфейс над Windows Workflow

Допустим, у меня есть рабочий процесс, который занимает один час, чтобы работать, где различные мероприятия происходят все время. Пока он работает, я хочу посмотреть, какая активность активна, какие действия уже запущены и т. Д.

Должен ли я сам кодировать этот пользовательский интерфейс или WF имеет встроенные функции, графически отображающие статус и т. Д. Рабочего процесса?

ответ

0

Чтобы выяснить, в каком состоянии находится рабочий процесс, я подписаться на событие 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); 
     } 
0

Там отсутствует встроенный в интерфейс.

Но вы можете создать его, либо подписавшись на события на WorflowInstance (см. Другой ответ), либо используя Tracking Service.

Первый легко настраивается для быстрого решения, но последний будет работать с несколькими хост-процессами и длительными (разгруженными) экземплярами рабочего процесса.

Смежные вопросы