WorkflowApplication.Terminate Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Termina un'istanza del flusso di lavoro.
Overload
| Nome | Descrizione |
|---|---|
| Terminate(Exception) |
Termina un'istanza del flusso di lavoro utilizzando l'eccezione specificata. |
| Terminate(String) |
Termina un'istanza del flusso di lavoro utilizzando il messaggio di errore specificato. |
| Terminate(Exception, TimeSpan) |
Termina un'istanza del flusso di lavoro utilizzando l'eccezione e l'intervallo di timeout specificati. |
| Terminate(String, TimeSpan) |
Termina un'istanza del flusso di lavoro utilizzando il messaggio di errore e l'intervallo di timeout specificati. |
Terminate(Exception)
Termina un'istanza del flusso di lavoro utilizzando l'eccezione specificata.
public:
void Terminate(Exception ^ reason);
public void Terminate(Exception reason);
member this.Terminate : Exception -> unit
Public Sub Terminate (reason As Exception)
Parametri
- reason
- Exception
Motivo della terminazione dell'istanza del flusso di lavoro.
Esempio
Nell'esempio seguente viene ospitato un flusso di lavoro usando WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando la definizione del flusso di lavoro specificata, gli eventi del ciclo di vita del flusso di lavoro desiderati vengono gestiti e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo l'avvio del flusso di lavoro, Terminate viene chiamato . Quando il flusso di lavoro viene terminato, viene visualizzato l'output seguente nella console.
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."));
Commenti
Questo metodo pianifica la chiusura dell'istanza del flusso di lavoro. Per ricevere una notifica al termine della terminazione, usare l'handle Completed .
Per impostazione predefinita, l'operazione Terminate deve essere completata in 30 secondi o viene generata un'eccezione TimeoutException .
Si applica a
Terminate(String)
Termina un'istanza del flusso di lavoro utilizzando il messaggio di errore specificato.
public:
void Terminate(System::String ^ reason);
public void Terminate(string reason);
member this.Terminate : string -> unit
Public Sub Terminate (reason As String)
Parametri
- reason
- String
Motivo della terminazione dell'istanza del flusso di lavoro.
Esempio
Nell'esempio seguente viene ospitato un flusso di lavoro usando WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando la definizione del flusso di lavoro specificata, gli eventi del ciclo di vita del flusso di lavoro desiderati vengono gestiti e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo l'avvio del flusso di lavoro, Terminate viene chiamato . Quando il flusso di lavoro viene terminato, viene visualizzato l'output seguente nella console.
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.");
Commenti
Questo metodo pianifica la chiusura dell'istanza del flusso di lavoro. Per ricevere una notifica al termine della terminazione, usare l'handle Completed .
Per impostazione predefinita, l'operazione Terminate deve essere completata in 30 secondi o viene generata un'eccezione TimeoutException .
Si applica a
Terminate(Exception, TimeSpan)
Termina un'istanza del flusso di lavoro utilizzando l'eccezione e l'intervallo di timeout specificati.
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)
Parametri
- reason
- Exception
Motivo della terminazione dell'istanza del flusso di lavoro.
- timeout
- TimeSpan
Intervallo in cui l'operazione Terminate(Exception, TimeSpan) deve essere completata prima dell'annullamento dell'operazione e viene generata un'eccezione TimeoutException .
Esempio
Nell'esempio seguente viene ospitato un flusso di lavoro usando WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando la definizione del flusso di lavoro specificata, gli eventi del ciclo di vita del flusso di lavoro desiderati vengono gestiti e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo l'avvio del flusso di lavoro, Terminate viene chiamato . Quando il flusso di lavoro viene terminato, viene visualizzato l'output seguente nella console.
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));
Commenti
Questo metodo pianifica la chiusura del flusso di lavoro. Per ricevere una notifica al termine della terminazione, usare l'handle Completed .
Si applica a
Terminate(String, TimeSpan)
Termina un'istanza del flusso di lavoro utilizzando il messaggio di errore e l'intervallo di timeout specificati.
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)
Parametri
- reason
- String
Motivo della terminazione dell'istanza del flusso di lavoro.
- timeout
- TimeSpan
Intervallo in cui l'operazione Terminate(String, TimeSpan) deve essere completata prima dell'annullamento dell'operazione e viene generata un'eccezione TimeoutException .
Esempio
Nell'esempio seguente viene ospitato un flusso di lavoro usando WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando la definizione del flusso di lavoro specificata, gli eventi del ciclo di vita del flusso di lavoro desiderati vengono gestiti e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo l'avvio del flusso di lavoro, Terminate viene chiamato . Quando il flusso di lavoro viene terminato, viene visualizzato l'output seguente nella console.
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));
Commenti
Questo metodo pianifica la chiusura dell'istanza del flusso di lavoro. Per ricevere una notifica al termine della terminazione, usare l'handle Completed .