/// <summary> /// Run the given IWorkInterval /// </summary> /// <param name="intervalWork">IWorkInterval to run</param> private void RunIntervalBasedWork(IWorkInterval intervalWork) { LogDebug("ThreadPool.RunIntervalBasedWork() : running interval based work ({0}) interval:{1}", intervalWork.Work.Description, intervalWork.WorkInterval); intervalWork.ResetWorkState(); intervalWork.LastRun = DateTime.Now; intervalWork.Running = true; Add(intervalWork.Work, QueuePriority.Low); }
public void RemoveIntervalWork(IWorkInterval intervalWork) { lock (_intervalBasedWork) { if (_intervalBasedWork.Contains(intervalWork)) { _intervalBasedWork.Remove(intervalWork); } } }
public void AddIntervalWork(IWorkInterval intervalWork, bool runNow) { if (intervalWork == null) { throw new ArgumentNullException("intervalWork", "cannot be null"); } lock (_intervalBasedWork) { _intervalBasedWork.Add(intervalWork); if (runNow) { RunIntervalBasedWork(intervalWork); } } }