WorkflowInvoker.BeginInvoke Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Appelle de façon asynchrone un flux de travail à l'aide du modèle de conception asynchrone IAsyncResult.
Surcharges
BeginInvoke(AsyncCallback, Object) |
Appelle de façon asynchrone un flux de travail à l'aide de l'objet AsyncCallback spécifié et de l'état fourni par l'utilisateur. |
BeginInvoke(IDictionary<String,Object>, AsyncCallback, Object) |
Appelle de façon asynchrone un flux de travail à l'aide de l'objet IDictionary<TKey,TValue> spécifié des paramètres en entrée, de l'objet AsyncCallback et de l'état fourni par l'utilisateur. |
BeginInvoke(TimeSpan, AsyncCallback, Object) |
Appelle de façon asynchrone un flux de travail à l'aide de l'intervalle de délai d'attente, de l'objet AsyncCallback et de l'état fourni par l'utilisateur qui ont été spécifiés. |
BeginInvoke(IDictionary<String,Object>, TimeSpan, AsyncCallback, Object) |
Appelle de façon asynchrone un flux de travail à l'aide de l'objet IDictionary<TKey,TValue> des paramètres d'entrée, de l'intervalle de délai d'attente, de l'objet AsyncCallback et de l'état fourni par l'utilisateur qui ont été spécifiés. |
Remarques
Pour plus d’informations, consultez Vue d’ensemble de la programmation asynchrone.
BeginInvoke(AsyncCallback, Object)
Appelle de façon asynchrone un flux de travail à l'aide de l'objet AsyncCallback spécifié et de l'état fourni par l'utilisateur.
public:
IAsyncResult ^ BeginInvoke(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (AsyncCallback callback, object state);
member this.BeginInvoke : AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- callback
- AsyncCallback
Méthode à appeler lorsque le flux de travail est terminé.
- state
- Object
Objet spécifique à l'application facultatif qui contient les informations sur l'opération asynchrone.
Retours
Référence à l'opération d'appel asynchrone.
Exemples
L'exemple suivant appelle un flux de travail composé d'une activité LongRunningDiceRoll
. L’activité LongRunningDiceRoll
a deux arguments de sortie qui représentent les résultats du jet de dés. Ces arguments sont récupérés via l'appel de EndInvoke. Lors du retour de l’appel à EndInvoke, chaque argument de sortie, indexé par nom d’argument, est retourné dans le dictionnaire de sorties.
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))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Remarques
Pour être informé quand le flux de travail est terminé et extraire les paramètres de sortie du flux de travail, appelez la méthode EndInvoke à partir de la méthode callback
. Si la méthode EndInvoke est appelée avant que le flux de travail ne soit terminé, elle s'interrompt jusqu'à la fin du flux de travail. Pour configurer un intervalle de délai d'attente au cours duquel le flux de travail doit être exécuté, utilisez l'une des surcharges de BeginInvoke acceptant un objet TimeSpan.
Cette méthode appelle de façon asynchrone un flux de travail à l’aide du modèle de conception asynchrone IAsyncResult. Pour plus d’informations, consultez Vue d’ensemble de la programmation asynchrone.
S’applique à
BeginInvoke(IDictionary<String,Object>, AsyncCallback, Object)
Appelle de façon asynchrone un flux de travail à l'aide de l'objet IDictionary<TKey,TValue> spécifié des paramètres en entrée, de l'objet AsyncCallback et de l'état fourni par l'utilisateur.
public:
IAsyncResult ^ BeginInvoke(System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (System.Collections.Generic.IDictionary<string,object> inputs, AsyncCallback callback, object state);
member this.BeginInvoke : System.Collections.Generic.IDictionary<string, obj> * AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (inputs As IDictionary(Of String, Object), callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- inputs
- IDictionary<String,Object>
Dictionnaire des paramètres d’entrée du flux de travail, indexés par nom d’argument.
- callback
- AsyncCallback
Méthode à appeler lorsque le flux de travail est terminé.
- state
- Object
Objet spécifique à l'application facultatif qui contient les informations sur l'opération asynchrone.
Retours
Référence à l'opération d'appel asynchrone.
Exemples
L'exemple suivant appelle un flux de travail composé d'une activité LongRunningDiceRoll
. L’activité LongRunningDiceRoll
a deux arguments de sortie qui représentent les résultats du jet de dés. Ces arguments sont récupérés via l'appel de EndInvoke. Lors du retour de l’appel à EndInvoke, chaque argument de sortie, indexé par nom d’argument, est retourné dans le dictionnaire de sorties.
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))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Remarques
Pour être informé quand le flux de travail est terminé et extraire les paramètres de sortie du flux de travail, appelez la méthode EndInvoke à partir de la méthode callback
. Si la méthode EndInvoke est appelée avant que le flux de travail ne soit terminé, elle s'interrompt jusqu'à la fin du flux de travail. Pour configurer un intervalle de délai d'attente au cours duquel le flux de travail doit être exécuté, utilisez l'une des surcharges de BeginInvoke acceptant un objet TimeSpan.
Cette méthode appelle de façon asynchrone un flux de travail à l’aide du modèle de conception asynchrone IAsyncResult. Pour plus d’informations, consultez Vue d’ensemble de la programmation asynchrone.
S’applique à
BeginInvoke(TimeSpan, AsyncCallback, Object)
Appelle de façon asynchrone un flux de travail à l'aide de l'intervalle de délai d'attente, de l'objet AsyncCallback et de l'état fourni par l'utilisateur qui ont été spécifiés.
public:
IAsyncResult ^ BeginInvoke(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (TimeSpan timeout, AsyncCallback callback, object state);
member this.BeginInvoke : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- timeout
- TimeSpan
Intervalle pendant lequel le flux de travail doit s'exécuter avant qu'il ne soit interrompu et qu'une exception TimeoutException ne soit levée.
- callback
- AsyncCallback
Méthode à appeler lorsque le flux de travail est terminé.
- state
- Object
Objet spécifique à l'application facultatif qui contient les informations sur l'opération asynchrone.
Retours
Référence à l'opération d'appel asynchrone.
Exemples
L'exemple suivant appelle un flux de travail composé d'une activité LongRunningDiceRoll
. L’activité LongRunningDiceRoll
a deux arguments de sortie qui représentent les résultats du jet de dés. Ces arguments sont récupérés via l'appel de EndInvoke. Lors du retour de l’appel à EndInvoke, chaque argument de sortie, indexé par nom d’argument, est retourné dans le dictionnaire de sorties.
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))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Remarques
Pour être informé quand le flux de travail est terminé et extraire les paramètres de sortie du flux de travail, appelez la méthode EndInvoke à partir de la méthode callback
. Si la méthode EndInvoke est appelée avant que le flux de travail ne soit terminé, elle s'interrompt jusqu'à la fin du flux de travail. Si le flux de travail ne se termine pas dans le délai spécifié, le flux de travail est interrompu et une exception TimeoutException est levée lorsque la méthode EndInvoke est appelée.
Notes
TimeoutException est levée uniquement si l'intervalle de délai d'attente est écoulé et que le workflow devient inactif pendant l'exécution. Un flux de travail dont le délai d'exécution dépasse l'intervalle de délai d'attente spécifié se termine correctement s'il ne devient pas inactif.
Cette méthode appelle de façon asynchrone un flux de travail à l’aide du modèle de conception asynchrone IAsyncResult. Pour plus d’informations, consultez Vue d’ensemble de la programmation asynchrone.
S’applique à
BeginInvoke(IDictionary<String,Object>, TimeSpan, AsyncCallback, Object)
Appelle de façon asynchrone un flux de travail à l'aide de l'objet IDictionary<TKey,TValue> des paramètres d'entrée, de l'intervalle de délai d'attente, de l'objet AsyncCallback et de l'état fourni par l'utilisateur qui ont été spécifiés.
public:
IAsyncResult ^ BeginInvoke(System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginInvoke (System.Collections.Generic.IDictionary<string,object> inputs, TimeSpan timeout, AsyncCallback callback, object state);
member this.BeginInvoke : System.Collections.Generic.IDictionary<string, obj> * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginInvoke (inputs As IDictionary(Of String, Object), timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- inputs
- IDictionary<String,Object>
Dictionnaire des paramètres d’entrée du flux de travail, indexés par nom d’argument.
- timeout
- TimeSpan
Intervalle pendant lequel le flux de travail doit s'exécuter avant qu'il ne soit interrompu et qu'une exception TimeoutException ne soit levée.
- callback
- AsyncCallback
Méthode à appeler lorsque le flux de travail est terminé.
- state
- Object
Objet spécifique à l'application facultatif qui contient les informations sur l'opération asynchrone.
Retours
Référence à l'opération d'appel asynchrone.
Exemples
L'exemple suivant appelle un flux de travail composé d'une activité LongRunningDiceRoll
. L’activité LongRunningDiceRoll
a deux arguments de sortie qui représentent les résultats du jet de dés. Ces arguments sont récupérés via l'appel de EndInvoke. Lors du retour de l’appel à EndInvoke, chaque argument de sortie, indexé par nom d’argument, est retourné dans le dictionnaire de sorties.
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))
}
}
};
}
}
static void BeginInvokeExample()
{
WorkflowInvoker invoker = new WorkflowInvoker(new LongRunningDiceRoll());
string userState = "BeginInvoke example";
IAsyncResult result = invoker.BeginInvoke(new AsyncCallback(WorkflowCompletedCallback), userState);
// You can inspect result from the host to determine if the workflow
// is complete.
Console.WriteLine("result.IsCompleted: {0}", result.IsCompleted);
// The results of the workflow are retrieved by calling EndInvoke, which
// can be called from the callback or from the host. If called from the
// host, it blocks until the workflow completes. If a callback is not
// required, pass null for the callback parameter.
Console.WriteLine("Waiting for the workflow to complete.");
IDictionary<string, object> outputs = invoker.EndInvoke(result);
Console.WriteLine("The two dice are {0} and {1}.",
outputs["D1"], outputs["D2"]);
}
static void WorkflowCompletedCallback(IAsyncResult result)
{
Console.WriteLine("Workflow complete.");
}
Remarques
Pour être informé quand le flux de travail est terminé et extraire les paramètres de sortie du flux de travail, appelez la méthode EndInvoke à partir de la méthode callback
. Si la méthode EndInvoke est appelée avant que le flux de travail ne soit terminé, elle s'interrompt jusqu'à la fin du flux de travail. Si le flux de travail ne se termine pas dans le délai spécifié, le flux de travail est interrompu et une exception TimeoutException est levée lorsque la méthode EndInvoke est appelée.
Notes
TimeoutException est levée uniquement si l'intervalle de délai d'attente est écoulé et que le workflow devient inactif pendant l'exécution. Un flux de travail dont le délai d'exécution dépasse l'intervalle de délai d'attente spécifié se termine correctement s'il ne devient pas inactif.
Cette méthode appelle de façon asynchrone un flux de travail à l’aide du modèle de conception asynchrone IAsyncResult. Pour plus d’informations, consultez Vue d’ensemble de la programmation asynchrone.