WorkflowApplication.Cancel Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.