これは興味深いものです。たくさんの を作成するサービスがありますTask
。現在、リストには 2 つのタスクのみが設定されています。ただし、Task
アクション内にブレークポイントを配置して の値を調べるschedule.Name
と、同じスケジュール名で 2 回ヒットします。ただし、2 つの別個のスケジュールが構成されており、スケジュール リストにあります。タスクがループ内の最後のスケジュールを再利用する理由を誰か説明できますか? これはスコープの問題ですか?
// make sure that we can log any exceptions thrown by the tasks
TaskScheduler.UnobservedTaskException += new EventHandler<UnobservedTaskExceptionEventArgs>(TaskScheduler_UnobservedTaskException);
// kick off all enabled tasks
foreach (IJobSchedule schedule in _schedules)
{
if (schedule.Enabled)
{
Task.Factory.StartNew(() =>
{
// breakpoint at line below. Inspecting "schedule.Name" always returns the name
// of the last schedule in the list. List contains 2 separate schedule items.
IJob job = _kernel.Get<JobFactory>().CreateJob(schedule.Name);
JobRunner jobRunner = new JobRunner(job, schedule);
jobRunner.Run();
},
CancellationToken.None,
TaskCreationOptions.LongRunning,
TaskScheduler.Default
);
}
} // next schedule