.net 我可以使用一个委托实例来启动多个异步请求吗?
我只是想知道,如果您想进行多个异步调用,是否有人可以澄清在某个委托的实例上使用.net 我可以使用一个委托实例来启动多个异步请求吗?,.net,asynchronous,iasyncresult,.net,Asynchronous,Iasyncresult,我只是想知道,如果您想进行多个异步调用,是否有人可以澄清在某个委托的实例上使用BeginInvoke,因为MSDN文档根本没有涉及/提及这一点 我想做的事情如下: MyDelegate d = new MyDelegate(this.TargetMethod); List<IAsyncResult> results = new List<IAsyncResult>(); //Start multiple asynchronous calls for (int i = 0
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
MyDelegate d=新的MyDelegate(this.TargetMethod);
列表结果=新列表();
//启动多个异步调用
对于(int i=0;i<4;i++)
{
结果:添加(d.BeginInvoke(someParams,null,null));
}
//等我所有的电话都打完
WaitHandle.WaitAll(results.Select(r=>r.AsyncWaitHandle.ToArray());
//处理结果
问题是,我可以用一个代理实例来执行此操作,还是每次调用都需要一个代理实例
鉴于
EndInvoke()
将IAsyncResult
作为参数,我假设前者是正确的,但我在文档中看不到任何指示方法的内容。是的,没问题。每次调用BeginInvoke()都会得到不同的IAsyncResult。委托对象本身中没有与已启动线程关联的状态