只是想知道是否有人可以澄清
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()
采取一个
IAsyncResult
作为一个参数,我假设前者是正确的,但在文档中我看不到任何可以指示这两种方式的内容。