我需要异步调用相同功能的代理人数。 问题是我应该如何处理回拨函数? 我们有几个代表正在运行,所以CallbackMethod并不意味着所有的异步代理都完成了。异步调用代理周期
AsyncMethodCaller c = new AsyncMethodCaller(instance.dummyMethod);
for (int i = 0; i < 100; i++)
{
IAsyncResult res = c.BeginInvoke(5000,
out dummy,
new AsyncCallback(CallbackMethod),
"executed on thread {0}, with result value \"{1}\".");
}
每次调用instance.dummyMethod时都会调用CallbackMethod。如果您需要等待主线程中的所有调用完成,则可以将所有IAsyncResult添加到列表中,然后通过调用IAsyncResult.IsComplete或使用WaitHandle.WaitAll方法来轮询循环中的每个项目 –