私は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); 毎回?
それとも、それは私が心配する必要がないことであり、新しいタスクを作成し続けても大丈夫ですか?
この種のスレッドを使用して、このシナリオでどのように作業する必要があるかについてのガイド/ベストプラクティスはありますか?