/// <summary> /// Remove Schedule item from category /// Helper method /// </summary> /// <param name="g9ScheduledItem">Specify Schedule item</param> #region removeScheduleItem private static void removeScheduleItem(KeyValuePair <Guid, G9ScheduleItem.G9ScheduleItem> g9ScheduledItem) { // remove from schedule try { // Run all finish call back foreach (var actions in g9ScheduledItem.Value.FinishCallBack) { actions?.Invoke(); } } catch (Exception ex) { foreach (var action in g9ScheduledItem.Value.ErrorCallBack) { action?.Invoke(ex); } } finally { try { // Remove SaveScheduleTask.Remove(g9ScheduledItem.Key); } catch { // Ignore } } }
/// <summary> /// Dispose this Schedule /// </summary> #region Dispose public void Dispose() { if (SaveScheduleTask[ScheduleIdentity].DisposeCallBack == null) { SaveScheduleTask[ScheduleIdentity].DisposeCallBack = new HashSet <Action>(); } foreach (var action in SaveScheduleTask[ScheduleIdentity].DisposeCallBack) { action?.Invoke(); } SaveScheduleTask.Remove(ScheduleIdentity); ScheduleIdentity = Guid.Empty; _ScheduleItem = null; }