コード例 #1
0
ファイル: Dispatcher.cs プロジェクト: azekeal/distributed
        private void StartNextJob()
        {
            using (Trace.Log())
            {
                if (ActiveJob != null)
                {
                    ActiveJob.Completed -= OnJobCompleted;
                }

                lock (jobQueue)
                {
                    if (jobQueue.Count == 0)
                    {
                        ActiveJob = null;
                    }

                    ActiveJob = jobQueue.Values[0];
                    jobQueue.RemoveAt(0);
                }

                if (ActiveJob != null)
                {
                    ActiveJob.Start();
                    ActiveJob.Completed += OnJobCompleted;
                }

                ActiveJobChanged?.Invoke(ActiveJob);
            }
        }