public void AddSchedule(ISchedule schedule) { lock (locker) { try { // DateTime.Now.Ticks로 1000 * 10000이 실제 시간 1sec이다. long time = DateTime.Now.Ticks + schedule.GetPeriod() * _TimeUnit; while (_schedules.ContainsKey(time)) { ++time; } _schedules.Add(time, schedule); logger.Info("'{0}' schedule is added...", schedule.GetName()); } catch (System.Exception ex) { logger.Error(ex.ToString()); Util.KillWithNotice(ex.ToString()); } } }