2
只是想知道是否有人可以澄清使用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
作为参数我会假设前者是正确的,但我不能在文档中看到任何指示任何方式。