Udostępnij za pośrednictwem


WorkflowApplication.Cancel Metoda

Definicja

Anuluje wystąpienie przepływu pracy.

Przeciążenia

Cancel()

Anuluje wystąpienie przepływu pracy.

Cancel(TimeSpan)

Anuluje wystąpienie przepływu pracy przy użyciu określonego interwału limitu czasu.

Uwagi

Ta metoda planuje anulowanie wystąpienia przepływu pracy. Aby powiadomić o zakończeniu anulowania, użyj dojścia Completed .

Domyślnie operacja anulowania musi zostać ukończona w ciągu 30 sekund lub TimeoutException jest zgłaszana.

Cancel()

Anuluje wystąpienie przepływu pracy.

public:
 void Cancel();
public void Cancel ();
member this.Cancel : unit -> unit
Public Sub Cancel ()

Przykłady

Poniższy przykład hostuje przepływ pracy przy użyciu polecenia WorkflowApplication. Wystąpienie WorkflowApplication jest tworzone przy użyciu określonej definicji przepływu pracy, obsługiwane są zdarzenia cyklu życia żądanego przepływu pracy, a przepływ pracy jest wywoływany za pomocą wywołania metody Run. Po uruchomieniu Cancel przepływu pracy jest wywoływany. Po anulowaniu przepływu pracy w konsoli zostaną wyświetlone następujące dane wyjściowe.

Starting the workflow.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled  
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.  
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
    }
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Cancel();

Uwagi

Ta metoda planuje anulowanie wystąpienia przepływu pracy. Aby zostać powiadomionym o zakończeniu anulowania, użyj Completed procedury obsługi.

Domyślnie operacja anulowania musi zostać ukończona w ciągu 30 sekund lub TimeoutException jest zgłaszana.

Dotyczy

Cancel(TimeSpan)

Anuluje wystąpienie przepływu pracy przy użyciu określonego interwału limitu czasu.

public:
 void Cancel(TimeSpan timeout);
public void Cancel (TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)

Parametry

timeout
TimeSpan

Interwał, w którym operacja anulowania musi zostać ukończona przed anulowaniem operacji i TimeoutException jest zgłaszany.

Przykłady

Poniższy przykład hostuje przepływ pracy przy użyciu polecenia WorkflowApplication. Wystąpienie WorkflowApplication jest tworzone przy użyciu określonej definicji przepływu pracy, obsługiwane są zdarzenia cyklu życia żądanego przepływu pracy, a przepływ pracy jest wywoływany za pomocą wywołania metody Run. Po uruchomieniu Cancel przepływu pracy jest wywoływany. Po anulowaniu przepływu pracy w konsoli zostaną wyświetlone następujące dane wyjściowe.

Starting the workflow.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.   
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled  
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.  
Activity wf = new Sequence
{
    Activities =
     {
         new WriteLine
         {
             Text = "Starting the workflow."
         },
         new Delay
         {
             Duration = TimeSpan.FromSeconds(5)
         },
         new WriteLine
         {
             Text = "Ending the workflow."
         }
     }
};

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
    }
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Cancel();

Uwagi

Ta metoda planuje anulowanie wystąpienia przepływu pracy. Aby zostać powiadomionym o zakończeniu anulowania, użyj Completed procedury obsługi.

Dotyczy