Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método WorkflowApplication.Abort ()

.NET Framework (current version)
 

Publicado: octubre de 2016

Notifica al motor de tiempo de ejecución de flujos de trabajo que esta instancia de flujo de trabajo debe anularse.

Espacio de nombres:   System.Activities
Ensamblado:  System.Activities (en System.Activities.dll)

public void Abort()

Cuando un flujo de trabajo hospedado por WorkflowApplication se anula, se invoca el controlador de la propiedad Aborted y no se invoca el controlador de la propiedad Completed.

En el siguiente ejemplo, se hospeda un flujo de trabajo utilizando WorkflowApplication. Una instancia de WorkflowApplication se construye utilizando la definición de flujo de trabajo especificada, se controlan los eventos de ciclo de vida de flujo de trabajo deseados y el flujo de trabajo se invoca con una llamada al método Run. Una vez iniciado el flujo de trabajo, se llama al método Abort. Cuando se anula el flujo de trabajo, se muestra la siguiente salida en la consola.

Iniciando el flujo de trabajo.Flujo de trabajo 3b76d562-516a-4a52-b17c-0f2ce531ad93 inactivo.Flujo de trabajo 3b76d562-516a-4a52-b17c-0f2ce531ad93 anuladoexcepción: System.Activities.WorkflowApplicationAbortedExceptionse ha anulado el flujo de trabajo.
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();

.NET Framework
Disponible desde 4.0
Volver al principio
Mostrar: