private void ClearQueueFetchers() { if (this.InvokeRequired) { ClearCompletedItemsCallback d = new ClearCompletedItemsCallback(ClearQueueFetchers); this.Invoke(d); } else { lock (m_lockObject) { var itemsToRemove = new List<WorkItem>(); foreach (var item in m_list) { if (item.Progress.IsDone && item is QueueFetcher) { itemsToRemove.Add(item); } } foreach (var itemToRemove in itemsToRemove) { m_list.Remove(itemToRemove); } } } }
private void ClearCompletedItems() { if (this.InvokeRequired) { ClearCompletedItemsCallback d = new ClearCompletedItemsCallback(ClearCompletedItems); this.Invoke(d); } else { lock (m_lockObject) { for (int i = 0; i < m_list.Count; i++) { if (m_list[i].Progress.IsDone) { m_list.RemoveAt(i); i--; } } } } }