我正在製作一個項目,每30〜80秒創建一個20〜50個新任務。 每個任務生存10〜20秒。重新啓動任務或創建一個新任務?
所以我使用的是Timer創建這些新的任務,但每次我總是重新創建相同的任務,代碼是這樣的:
public class TaskRunner : IDisposable
{
private readonly Timer timer;
public IService service;
public ThreadRunner(IService service) {
this.service = service;
timer = new Timer(10000);
timer.Elapsed += Execute;
timer.Enabled = true;
}
}
private void Execute(object sender, ElapsedEventArgs e)
{
try
{
Task.Factory.StartNew(service.Execute);
}
catch (Exception ex)
{
logger.ErrorFormat("Erro running thread {0}. {1}", service, ex);
}
}
public void Dispose()
{
timer.Dispose();
}
}
我的問題是,任何的theres方式創建任務並保持重新啓動它,所以我不需要開始一個新的任務Task.Factory.StartNew(service.Execute);每次?
或者這就是我不必擔心的事情,可以繼續創建新的任務嗎?
Theres關於如何在這種情況下使用那種線程工作的任何指南/最佳實踐?
您正在使用_Tasks_,而不是_Threads_。在這裏有所不同。 – 2010-09-12 20:59:33
'Task.Factory.StartNew'不會「啓動一個新線程」(通常) – 2010-09-12 21:13:47
好吧,我明白了。問題改爲「我應該每次創建一個新的任務,還是我可以重新啓動它?」 – 2010-09-12 21:35:09