我正在开发一个每 30~80 秒创建 20~50 个新任务的项目。每个任务的生存时间为 10~20 秒。
所以我使用计时器来创建这些新任务,但每次我总是重新创建相同的任务时,代码是这样的:
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();
}
}
我的问题是,有任何方法可以创建任务并继续重新启动它,所以我不需要启动新任务Task.Factory.StartNew(service.Execute); 每次?
或者那是我不必担心的事情,并且可以继续创建新任务?
关于我应该如何使用这种线程在这种情况下工作的任何指南/最佳实践?