WorkflowInvoker.InvokeCompleted Evento

Definição

Ocorre quando o fluxo de trabalho invocado por uma das sobrecargas de InvokeAsync é concluído ou cancelado.Occurs when the workflow invoked by one of the InvokeAsync overloads is completed or canceled.

public:
 event EventHandler<System::Activities::InvokeCompletedEventArgs ^> ^ InvokeCompleted;
public event EventHandler<System.Activities.InvokeCompletedEventArgs> InvokeCompleted;
member this.InvokeCompleted : EventHandler<System.Activities.InvokeCompletedEventArgs> 
Public Custom Event InvokeCompleted As EventHandler(Of InvokeCompletedEventArgs) 
Public Event InvokeCompleted As EventHandler(Of InvokeCompletedEventArgs) 

Tipo de evento

EventHandler<InvokeCompletedEventArgs>

Exemplos

O exemplo a seguir invoca um fluxo de trabalho que consiste em uma LongRunningDiceRoll atividade.The following example invokes a workflow consisting of a LongRunningDiceRoll activity. A atividade de LongRunningDiceRoll tem dois argumentos de saída que representam os resultados da operação de rolagem de dados.The LongRunningDiceRoll activity has two output arguments that represent the results of the dice roll operation. Quando o fluxo de trabalho é concluído, eles são recuperados no InvokeCompleted manipulador.When the workflow completes these are retrieved in the InvokeCompleted handler.

public sealed class LongRunningDiceRoll : Activity
{
    public OutArgument<int> D1 { get; set; }
    public OutArgument<int> D2 { get; set; }

    public LongRunningDiceRoll()
    {
        this.Implementation = () => new Sequence
        {
            Activities =
            {
                new WriteLine
                {
                    Text = "Rolling the dice for 5 seconds."
                },
                new Delay
                {
                    Duration = TimeSpan.FromSeconds(5)
                },
                new DiceRoll
                {
                    D1 = new OutArgument<int>(env => this.D1.Get(env)),
                    D2 = new OutArgument<int>(env => this.D2.Get(env))
                }
            }
        };
    }
}
AutoResetEvent syncEvent = new AutoResetEvent(false);

WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());

invoker.InvokeCompleted += delegate(object sender, InvokeCompletedEventArgs args)
{
    if (args.Cancelled == true)
    {
        Console.WriteLine("Workflow was cancelled.");
    }
    else if (args.Error != null)
    {
        Console.WriteLine("Exception: {0}\n{1}",
            args.Error.GetType().FullName,
            args.Error.Message);
    }
    else
    {
        Console.WriteLine("The two dice are {0} and {1}.",
            args.Outputs["D1"], args.Outputs["D2"]);
    }

    syncEvent.Set();
};

invoker.InvokeAsync("InvokeAsync Example");

Console.WriteLine("Waiting for the workflow to complete.");

// Wait for the workflow to complete.
syncEvent.WaitOne();

Console.WriteLine("The workflow is complete.");

Comentários

Trate isso para determinar se um fluxo de trabalho invocado com uma das InvokeAsync sobrecargas foi concluído com êxito e para recuperar os argumentos de saída do fluxo de trabalho concluído.Handle this to determine whether a workflow invoked with one of the InvokeAsync overloads completed successfully and to retrieve the output arguments of the completed workflow.

Aplica-se a