.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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д