WorkflowInvoker.InvokeCompleted Événement

Définition

Se produit lorsque le flux de travail appelé par l'une des surcharges de InvokeAsync est terminé ou annulé.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 Event InvokeCompleted As EventHandler(Of InvokeCompletedEventArgs) 

Exemples

L'exemple suivant appelle un flux de travail composé d'une activité LongRunningDiceRoll.The following example invokes a workflow consisting of a LongRunningDiceRoll activity. L'activité LongRunningDiceRoll a deux arguments de sortie qui représentent les résultats du jet de dés.The LongRunningDiceRoll activity has two output arguments that represent the results of the dice roll operation. Lorsque le flux de travail se termine, ces arguments sont récupérés dans le gestionnaire d'événements InvokeCompleted.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.");

Remarques

Gérez cet événement pour déterminer si un flux de travail appelé avec l'une des surcharges de InvokeAsync s'est exécuté correctement et pour récupérer les arguments de sortie du flux de travail terminé.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.

S’applique à