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

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

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

Здравствуйте, возникла проблемка, гугл не помог. Есть похожие проблемы, но их решение мне не подходит. Суть такова: Выполняется Task<string> NakrytkaLike, и он должен вернуть значение. Но в этом же потоке еще вызывается один Task<string> Captcha, и мне нужно подождать его ответа. Как это сделать? ContinueWith и Task.WaitAny не помогло.
Листинг программы
  1. public static Task<string> NakrytkaLike(string KeyAntigate)
  2. {
  3. return Task<string>.Factory.StartNew(() =>
  4. {
  5. string imgCaptcha;
  6. // Выполняются задачи.
  7. // Получаю нужные значения для imgCaptcha
  8. Task<string> TaskCaptcha = Captcha(KeyAntigate, imgCaptcha);//Вызываю новый поток, где должны выполнятся другие задачи.
  9. // ТУТ должно быть ожидание, когда выполнися Captcha(KeyAntigate, imgCaptcha); и можно будет вернуть значение TaskCaptcha.Result;
  10. return TaskCaptcha.Result;
  11. }
  12. }
  13. public static Task<string> Captcha(string KeyAntigate, string imgCaptcha)
  14. {
  15. return Task<string>.Factory.StartNew(() =>
  16. {
  17. AntiCaptcha anticap = new AntiCaptcha(KeyAntigate);
  18. anticap.CheckDelay = 10000;
  19. anticap.CheckRetryCount = 20;
  20. anticap.SlotRetry = 5;
  21. anticap.SlotRetryDelay = 800;
  22. anticap.Parameters.Set("is_russian", "1");
  23. string answer = anticap.GetAnswer(imgCaptcha);
  24. return answer;
  25. });
  26. }

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

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

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


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

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

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы