Это может быть странный вопрос, и это действительно для моей образовательной цели, поэтому я могу применить его в будущих сценариях, которые могут возникнуть.Как определить, завершена ли Task.Run в цикле
Я использую C#.
Я испытываю стресс, так что это не совсем производственный код.
Я загружаю данные на свой сервер через веб-службу.
Я запускаю услугу с помощью Run.Task.
Я проверяю, завершена ли задача, прежде чем разрешить запуск следующей Run.Task.
Это делается в цикле.
Однако, поскольку я использую модульную заявленную задачу, не повлияет на результат? Я могу объявить локальную переменную Task.Run, но я хочу посмотреть, как далеко я могу получить этот вопрос.
Если Task.Run может поднять событие, чтобы сказать, что оно завершено, это может не быть проблемой?
Это мой код:
// модуль декларации:
private static Task webTask = Task.Run(() => { System.Windows.Forms.Application.DoEvents(); });
// в функцию, вызываемую с помощью таймера
if (webTask.IsCompleted)
{
//keep count of competed tasks
}
webTask = Task.Run(() =>
{
try
{
wcf.UploadMotionDynamicRaw(bytes); //my web service
}
catch (Exception ex)
{
//deal with error
}
);
Использование [Задача Продолжение] (http://msdn.microsoft.com/en-us/library/ee372288%28v=vs.110%29 .aspx). Существуют разные модификации.Один из них - сделать что-то после завершения задачи *. IMO вам не нужен таймер - измените свой код на 'webTask.ContinueWith ...'. – pasty
@pasty HI, спасибо за ответный удар. Я посмотрю на это сейчас и отчитаюсь - спасибо :) –
@pasty, поэтому, когда я изменяю свой код на это: –