.NET 4.x Ожидание завершения Task - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, возникла проблемка, гугл не помог. Есть похожие проблемы, но их решение мне не подходит. Суть такова: Выполняется Task<string> NakrytkaLike, и он должен вернуть значение. Но в этом же потоке еще вызывается один Task<string> Captcha, и мне нужно подождать его ответа. Как это сделать? ContinueWith и Task.WaitAny не помогло.
public static Task<string> NakrytkaLike(string KeyAntigate)
        {
            return Task<string>.Factory.StartNew(() =>
            {
            string imgCaptcha;
            // Выполняются задачи.
            // Получаю нужные значения для imgCaptcha
            Task<string> TaskCaptcha = Captcha(KeyAntigate, imgCaptcha);//Вызываю новый поток, где должны выполнятся другие задачи.
            // ТУТ должно быть ожидание, когда выполнися  Captcha(KeyAntigate, imgCaptcha); и можно будет вернуть значение TaskCaptcha.Result;
            return TaskCaptcha.Result;
            }
        }   
        
public static Task<string> Captcha(string KeyAntigate, string imgCaptcha)
{
    return Task<string>.Factory.StartNew(() =>
    {
        AntiCaptcha anticap = new AntiCaptcha(KeyAntigate);
        anticap.CheckDelay = 10000;
        anticap.CheckRetryCount = 20;
        anticap.SlotRetry = 5;
        anticap.SlotRetryDelay = 800;
        anticap.Parameters.Set("is_russian", "1");
        string answer = anticap.GetAnswer(imgCaptcha);
        return answer;
    });
}

Решение задачи: «.NET 4.x Ожидание завершения Task»

textual
Листинг программы
EventWaitHandle wh=new AutoResetEvent(false);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы