BeginInvoke
只是想知道当您想要进行多个异步调用时是否有人可以澄清在某个委托的实例上的使用,因为 MSDN 文档根本没有真正涵盖/提及这一点。
我想做的是如下所示:
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
问题是我可以使用委托的一个实例来执行此操作,还是每次调用都需要一个委托的实例?
鉴于EndInvoke()
将 aIAsyncResult
作为参数,我会假设前者是正确的,但我在文档中看不到任何指示任何一种方式的内容。