示例#1
0
        private void OnStartingWork(WorkerThread <Runner.IRunnerData> worker, Runner.IRunnerData task)
        {
            if (task is null)
            {
                return;
            }

            lock (m_lock)
            {
                if (m_updateTasks.TryGetValue(task, out Tuple <ISchedule, DateTime, DateTime> scheduleInfo))
                {
                    // Item2 is the scheduled start time (Time in the Schedule table).
                    // Item3 is the actual start time (LastRun in the Schedule table).
                    m_updateTasks[task] = Tuple.Create(scheduleInfo.Item1, scheduleInfo.Item2, DateTime.UtcNow);
                }
            }
        }
示例#2
0
        private void OnCompleted(WorkerThread <Runner.IRunnerData> worker, Runner.IRunnerData task)
        {
            Tuple <ISchedule, DateTime, DateTime> t = null;

            lock (m_lock)
            {
                if (task != null && m_updateTasks.TryGetValue(task, out t))
                {
                    m_updateTasks.Remove(task);
                }
            }

            if (t != null)
            {
                t.Item1.Time    = t.Item2;
                t.Item1.LastRun = t.Item3;
                Program.DataConnection.AddOrUpdateSchedule(t.Item1);
            }
        }