gpt4 book ai didi

.net - 我可以使用委托(delegate)的单个实例来启动多个异步请求吗?

转载 作者:行者123 更新时间:2023-12-04 06:51:35 24 4
gpt4 key购买 nike

只是想知道是否有人可以澄清 BeginInvoke 的用法当您想要进行多个异步调用时,在某个委托(delegate)的实例上,因为 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

问题是我可以使用委托(delegate)的一个实例来执行此操作,还是每次调用都需要一个委托(delegate)的实例?

鉴于 EndInvoke()需要 IAsyncResult作为一个参数,我会假设前者是正确的,但我在文档中看不到任何说明任何一种方式的东西。

最佳答案

是没有问题。每次调用 BeginInvoke() 都会得到不同的 IAsyncResult。委托(delegate)对象本身没有与已启动线程关联的状态。

关于.net - 我可以使用委托(delegate)的单个实例来启动多个异步请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com