Condividi tramite


WorkflowInstance.Terminate(String) Metodo

Definizione

Termina l'istanza del flusso di lavoro in modo sincrono.

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

Parametri

error
String

Descrizione del motivo della chiusura dell'istanza del flusso di lavoro.

Eccezioni

Il motore di runtime del flusso di lavoro non è in esecuzione.

Esempio

Nell'esempio di codice seguente viene illustrata la chiamata a Terminate su un oggetto WorkflowInstance.

// Create a workflow runtime
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Create a workflow instance
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
// Start the workflow
workflowInstance.Start();
// Terminate the workflow, passing in a message
workflowInstance.Terminate("Workflow manually terminated");
' Create a workflow runtime
Dim workflowRuntime As New WorkflowRuntime()
' Create a workflow instance
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
' Start the workflow
workflowInstance.Start()
' Terminate the workflow, passing in a message
workflowInstance.Terminate("Workflow manually terminated")

Commenti

L'istanza del flusso di lavoro viene chiusa in modo sincrono. L'host chiama il metodo Terminate per terminare l'istanza del flusso di lavoro. Il motore di runtime del flusso di lavoro cancella l'istanza del flusso di lavoro in memoria e informa il servizio di persistenza che l'istanza è stata cancellata dalla memoria. Per SqlWorkflowPersistenceService, questo vuole dire che ogni informazione sullo stato dell'istanza del flusso di lavoro viene eliminata dal database al momento della chiusura. Non sarà possibile ricaricare l'istanza del flusso di lavoro da un punto di persistenza precedentemente archiviato.

Dopo che l'istanza del flusso di lavoro in memoria è stata cancellata e il servizio di persistenza è stato informato della chiusura, il metodo Terminate genera l'evento WorkflowTerminated e passa reason nella proprietà Message di una classe WorkflowTerminatedException contenuta in WorkflowTerminatedEventArgs.

Terminate è diverso dal metodo Abort poiché mentre Terminate cancella l'istanza del flusso di lavoro in memoria e informa il servizio di persistenza della chiusura, Abort cancella semplicemente l'istanza del flusso di lavoro in memoria, che può quindi essere riavviata dall'ultimo punto di persistenza.

Si applica a