Język

WorkflowApplication.Cancel Metoda

Definicja

Anuluje wystąpienie przepływu pracy.

Przeciążenia

Nazwa Opis
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 otrzymywać powiadomienia po zakończeniu anulowania, użyj uchwytu 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 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 następujące dane wyjściowe są wyświetlane w konsoli programu .

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 otrzymywać powiadomienia po zakończeniu Completed anulowania, użyj 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 jest TimeoutException zgłaszany.

Przykłady

Poniższy przykład hostuje przepływ pracy przy użyciu 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 następujące dane wyjściowe są wyświetlane w konsoli programu .

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 otrzymywać powiadomienia po zakończeniu Completed anulowania, użyj procedury obsługi.

Dotyczy