Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我可以使用一个委托实例来启动多个异步请求吗?_.net_Asynchronous_Iasyncresult - Fatal编程技术网

.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。委托对象本身中没有与已启动线程关联的状态