我正在开发一个项目,每隔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); 每次?
或者那是我不必担心的事情,可以继续创建新任务吗?
我有什么指导/最佳实践可以在这种情况下使用这种线程吗?