У меня есть метод C #, который несколько раз вызывает внешний веб-сервис в цикле. Мне нужно вызвать его асинхронно в другом потоке.
Но вызывающий процесс ДОЛЖЕН ждать, пока асинхронный поток не выполнит определенное условие, - это условие возникает задолго до завершения итераций цикла.
Пожалуйста, предложите пример кода на C #, который описывает, как ждать, пока асинхронный блок кода покажет, что определенное условие выполнено, чтобы основной процесс мог продолжаться, не дожидаясь завершения цикла.
Мой код:
..
List<MyObject> objList = GetObjects();
int counter = 0;
await Task.Factory.StartNew(() =>
{
foreach (MyObject obj in objList)
{
counter++;
CallExtWebSvc(obj);
if (counter == 1)
{
// return an indication that main process can proceed.
}
}
});
// Do other stuff...