protected virtual void BeginExecution(IntervalJob intervalJob) { if (intervalJob.CurrentlyExecuting) { return; } lock (_lockObject) { try { intervalJob.SetCurrentlyExecutingFlag(true); ExecuteJob(intervalJob); } finally { intervalJob.SetCurrentlyExecutingFlag(false); } } }
protected abstract void ExecuteJob(IntervalJob intervalJob);