public void AddGeneralTask(GeneralTaskDelegate general_task_delegate) { lock (general_task_items) { GeneralTaskItem general_task_item = new GeneralTaskItem(); general_task_item.description = String.Format("{0}:{1}", general_task_delegate.Target, general_task_delegate.Method.Name); general_task_item.method = general_task_delegate.Method; general_task_item.target = new WeakReference(general_task_delegate.Target); general_task_items.Add(general_task_item); } }
public void RemoveGeneralTask(GeneralTaskDelegate general_task_delegate) { lock (general_task_items) { GeneralTaskItem general_task_item = new GeneralTaskItem(); general_task_item.description = String.Format("{0}:{1}", general_task_delegate.Target, general_task_delegate.Method.Name); general_task_item.method = general_task_delegate.Method; general_task_item.target = new WeakReference(general_task_delegate.Target); general_task_items.Add(general_task_item); for (int i = 0; i < general_task_items.Count; ++i) { if (general_task_items[i].target == general_task_delegate.Target) { general_task_items.RemoveAt(i); break; } } } }