WorkflowApplication.Abort Metodo

Definizione

Notifica al runtime del flusso di lavoro che l'istanza del flusso di lavoro deve interrompere.

Overload

Nome Descrizione
Abort()

Notifica al runtime del flusso di lavoro che l'istanza del flusso di lavoro deve interrompere.

Abort(String)

Notifica al runtime del flusso di lavoro che l'istanza del flusso di lavoro deve interrompere per il motivo specificato.

Commenti

Quando un flusso di lavoro ospitato da un WorkflowApplication oggetto viene interrotto, viene richiamato il Aborted gestore e il Completed gestore non viene richiamato.

Abort()

Notifica al runtime del flusso di lavoro che l'istanza del flusso di lavoro deve interrompere.

public:
 void Abort();
public void Abort();
override this.Abort : unit -> unit
Public Sub Abort ()

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, Abort viene chiamato . Quando il flusso di lavoro viene interrotto, viene visualizzato l'output seguente nella console.

Starting the workflow.
Workflow 3b76d562-516a-4a52-b17c-0f2ce531ad93 Idle.
Workflow 3b76d562-516a-4a52-b17c-0f2ce531ad93 Aborted
Exception: System.Activities.WorkflowApplicationAbortedException
The workflow has been aborted.
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.Aborted = delegate(WorkflowApplicationAbortedEventArgs e)
{
    // Display the exception that caused the workflow
    // to abort.
    Console.WriteLine("Workflow {0} Aborted.", e.InstanceId);
    Console.WriteLine("Exception: {0}\n{1}",
        e.Reason.GetType().FullName,
        e.Reason.Message);
};

wfApp.Idle = delegate(WorkflowApplicationIdleEventArgs e)
{
    // Perform any processing that should occur
    // when a workflow goes idle. If the workflow can persist,
    // both Idle and PersistableIdle are called in that order.
    Console.WriteLine("Workflow {0} Idle.", e.InstanceId);
};

wfApp.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e)
{
    // Instruct the runtime to persist and unload the workflow
    return PersistableIdleAction.Unload;
};

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

wfApp.OnUnhandledException = delegate(WorkflowApplicationUnhandledExceptionEventArgs e)
{
    // Display the unhandled exception.
    Console.WriteLine("OnUnhandledException in Workflow {0}\n{1}",
        e.InstanceId, e.UnhandledException.Message);

    Console.WriteLine("ExceptionSource: {0} - {1}",
        e.ExceptionSource.DisplayName, e.ExceptionSourceInstanceId);

    // Instruct the runtime to terminate the workflow.
    // Other choices are Abort and Cancel
    return UnhandledExceptionAction.Terminate;
};

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

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

wfApp.Abort();

Commenti

Quando un flusso di lavoro ospitato da un WorkflowApplication oggetto viene interrotto, viene richiamato il Aborted gestore e il Completed gestore non viene richiamato.

Si applica a

Abort(String)

Notifica al runtime del flusso di lavoro che l'istanza del flusso di lavoro deve interrompere per il motivo specificato.

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

Parametri

reason
String

Motivo dell'interruzione della richiesta.

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, Abort viene chiamato . Quando il flusso di lavoro viene interrotto, viene visualizzato l'output seguente nella console.

Starting the workflow.
Workflow 607b042e-98db-4bbe-abe8-f4d750feec41 Idle.
Workflow 607b042e-98db-4bbe-abe8-f4d750feec41 Aborted
Exception: System.Activities.WorkflowApplicationAbortedException
The reason for aborting the workflow.
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.Aborted = delegate(WorkflowApplicationAbortedEventArgs e)
{
    // Display the exception that caused the workflow
    // to abort.
    Console.WriteLine("Workflow {0} Aborted.", e.InstanceId);
    Console.WriteLine("Exception: {0}\n{1}",
        e.Reason.GetType().FullName,
        e.Reason.Message);
};

wfApp.Idle = delegate(WorkflowApplicationIdleEventArgs e)
{
    // Perform any processing that should occur
    // when a workflow goes idle. If the workflow can persist,
    // both Idle and PersistableIdle are called in that order.
    Console.WriteLine("Workflow {0} Idle.", e.InstanceId);
};

wfApp.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e)
{
    // Instruct the runtime to persist and unload the workflow
    return PersistableIdleAction.Unload;
};

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

wfApp.OnUnhandledException = delegate(WorkflowApplicationUnhandledExceptionEventArgs e)
{
    // Display the unhandled exception.
    Console.WriteLine("OnUnhandledException in Workflow {0}\n{1}",
        e.InstanceId, e.UnhandledException.Message);

    Console.WriteLine("ExceptionSource: {0} - {1}",
        e.ExceptionSource.DisplayName, e.ExceptionSourceInstanceId);

    // Instruct the runtime to terminate the workflow.
    // Other choices are Abort and Cancel
    return UnhandledExceptionAction.Terminate;
};

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

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

wfApp.Abort();

Commenti

Quando un flusso di lavoro ospitato da un WorkflowApplication oggetto viene interrotto, viene richiamato il Aborted gestore e il Completed gestore non viene richiamato.

Si applica a