Мне нужно вызвать асинхронное число делегатов для одной и той же функции. Вопрос в том, как я должен обрабатывать функцию обратного вызова? У нас есть пара делегатов, которые работают так, что CallbackMethod не означает, что все делегаты async закончены.Асинхронный вызов для делегата в цикле
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}\".");
}
CallbackMethod будет вызываться для каждого вызова instance.dummyMethod. Если вам нужно подождать, пока все вызовы не будут завершены в вашем основном потоке, вы можете добавить весь список IAsyncResult в список, а затем опросить каждый элемент в цикле, вызвав IAsyncResult.IsComplete или использовать метод WaitHandle.WaitAll –