Share via


WorkflowApplication.Terminate Metoda

Definice

Ukončí instanci pracovního postupu.

Přetížení

Terminate(Exception)

Ukončí instanci pracovního postupu pomocí zadané výjimky.

Terminate(String)

Ukončí instanci pracovního postupu pomocí zadané chybové zprávy.

Terminate(Exception, TimeSpan)

Ukončí instanci pracovního postupu pomocí zadané výjimky a intervalu časového limitu.

Terminate(String, TimeSpan)

Ukončí instanci pracovního postupu pomocí zadané chybové zprávy a intervalu časového limitu.

Terminate(Exception)

Ukončí instanci pracovního postupu pomocí zadané výjimky.

public:
 void Terminate(Exception ^ reason);
public void Terminate (Exception reason);
member this.Terminate : Exception -> unit
Public Sub Terminate (reason As Exception)

Parametry

reason
Exception

Důvod ukončení instance pracovního postupu.

Příklady

Následující příklad hostuje pracovní postup pomocí WorkflowApplication. Instance WorkflowApplication je vytvořena pomocí zadané definice pracovního postupu, jsou zpracovány požadované události životního cyklu pracovního postupu a pracovní postup je vyvolán s voláním Run. Po spuštění Terminate pracovního postupu je volána. Po ukončení pracovního postupu se v konzole zobrazí následující výstup.

Starting the workflow.   
Workflow e6b33409-f010-49f1-82ce-56f8baabe5e5 Terminated.  
Exception: System.ApplicationException  
Terminating the workflow.   
Workflow e6b33409-f010-49f1-82ce-56f8baabe5e5 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate(new ApplicationException("Terminating the workflow."));

Poznámky

Tato metoda naplánuje ukončení instance pracovního postupu. Pokud chcete být upozorněni na dokončení ukončení, použijte Completed popisovač.

Ve výchozím nastavení Terminate musí být operace dokončena za 30 sekund, jinak TimeoutException se vyvolá.

Platí pro

Terminate(String)

Ukončí instanci pracovního postupu pomocí zadané chybové zprávy.

public:
 void Terminate(System::String ^ reason);
public void Terminate (string reason);
member this.Terminate : string -> unit
Public Sub Terminate (reason As String)

Parametry

reason
String

Důvod ukončení instance pracovního postupu.

Příklady

Následující příklad hostuje pracovní postup pomocí WorkflowApplication. Instance WorkflowApplication je vytvořena pomocí zadané definice pracovního postupu, jsou zpracovány požadované události životního cyklu pracovního postupu a pracovní postup je vyvolán s voláním Run. Po spuštění Terminate pracovního postupu je volána. Po ukončení pracovního postupu se v konzole zobrazí následující výstup.

Starting the workflow.   
Workflow f87c6f91-4fe4-40b9-b7cb-4f1bd071bf84 Terminated.   
Exception: System.Activities.WorkflowApplicationTerminatedException  
Terminating the workflow.   
Workflow f87c6f91-4fe4-40b9-b7cb-4f1bd071bf84 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate("Terminating the workflow.");

Poznámky

Tato metoda naplánuje ukončení instance pracovního postupu. Pokud chcete být upozorněni na dokončení ukončení, použijte Completed popisovač.

Ve výchozím nastavení Terminate musí být operace dokončena za 30 sekund, jinak TimeoutException se vyvolá.

Platí pro

Terminate(Exception, TimeSpan)

Ukončí instanci pracovního postupu pomocí zadané výjimky a intervalu časového limitu.

public:
 void Terminate(Exception ^ reason, TimeSpan timeout);
public void Terminate (Exception reason, TimeSpan timeout);
member this.Terminate : Exception * TimeSpan -> unit
Public Sub Terminate (reason As Exception, timeout As TimeSpan)

Parametry

reason
Exception

Důvod ukončení instance pracovního postupu.

timeout
TimeSpan

Interval, ve kterém Terminate(Exception, TimeSpan) musí být operace dokončena před zrušením operace a TimeoutException vyvolání operace.

Příklady

Následující příklad hostuje pracovní postup pomocí WorkflowApplication. Instance WorkflowApplication je vytvořena pomocí zadané definice pracovního postupu, jsou zpracovány požadované události životního cyklu pracovního postupu a pracovní postup je vyvolán s voláním Run. Po spuštění Terminate pracovního postupu je volána. Po ukončení pracovního postupu se v konzole zobrazí následující výstup.

Starting the workflow.   
Workflow de28efe5-9057-472b-8d95-899c249893c5 Terminated.  
Exception: System.ApplicationException  
Terminating the workflow.   
Workflow de28efe5-9057-472b-8d95-899c249893c5 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate(new ApplicationException("Terminating the workflow."),
    TimeSpan.FromSeconds(15));

Poznámky

Tato metoda naplánuje ukončení pracovního postupu. Pokud chcete být upozorněni na dokončení ukončení, použijte Completed popisovač.

Platí pro

Terminate(String, TimeSpan)

Ukončí instanci pracovního postupu pomocí zadané chybové zprávy a intervalu časového limitu.

public:
 void Terminate(System::String ^ reason, TimeSpan timeout);
public void Terminate (string reason, TimeSpan timeout);
member this.Terminate : string * TimeSpan -> unit
Public Sub Terminate (reason As String, timeout As TimeSpan)

Parametry

reason
String

Důvod ukončení instance pracovního postupu.

timeout
TimeSpan

Interval, ve kterém Terminate(String, TimeSpan) musí být operace dokončena před zrušením operace a TimeoutException vyvolání operace.

Příklady

Následující příklad hostuje pracovní postup pomocí WorkflowApplication. Instance WorkflowApplication je vytvořena pomocí zadané definice pracovního postupu, jsou zpracovány požadované události životního cyklu pracovního postupu a pracovní postup je vyvolán s voláním Run. Po spuštění Terminate pracovního postupu je volána. Po ukončení pracovního postupu se v konzole zobrazí následující výstup.

Starting the workflow.   
Workflow 2897d2ef-377e-4224-ae93-5c19b38f487c Terminated.   
Exception: System.Activities.WorkflowApplicationTerminatedException  
Terminating the workflow.   
Workflow 2897d2ef-377e-4224-ae93-5c19b38f487c 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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

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

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

wfApp.Terminate("Terminating the workflow.", TimeSpan.FromSeconds(15));

Poznámky

Tato metoda naplánuje ukončení instance pracovního postupu. Pokud chcete být upozorněni na dokončení ukončení, použijte Completed popisovač.

Platí pro