我需要異步調用相同功能的代理人數。 問題是我應該如何處理回撥函數? 我們有幾個代表正在運行,所以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方法來輪詢循環中的每個項目 –