Je me demandais si quelqu'un pourrait clarifier l'utilisation de BeginInvoke
sur une instance de certains délégués lorsque vous souhaitez effectuer plusieurs appels asynchrones, car la documentation MSDN ne couvre pas vraiment/mention du tout.Puis-je utiliser une seule instance d'un délégué pour démarrer plusieurs demandes asynchrones?
Ce que je veux faire quelque chose comme ce qui suit:
MyDelegate d = new MyDelegate(this.TargetMethod);
List<IAsyncResult> results = new List<IAsyncResult>();
//Start multiple asynchronous calls
for (int i = 0; i < 4; i++)
{
results.Add(d.BeginInvoke(someParams, null, null));
}
//Wait for all my calls to finish
WaitHandle.WaitAll(results.Select(r => r.AsyncWaitHandle).ToArray());
//Process the Results
La question est ce que je peux faire cela avec une instance du délégué ou ai-je besoin d'une instance du délégué pour chaque appel? Comme EndInvoke()
prend un IAsyncResult
comme paramètre je suppose que le premier est correct mais je ne peux rien voir dans la documentation pour indiquer l'une ou l'autre manière.