private void TemplateBW_DoWork(object sender, DoWorkEventArgs e) { ObservableCollection <TemplateContact> returnTemplateContacts = new ObservableCollection <TemplateContact>(); string[] availableTemplates = Directory.GetFiles(@"C:\Program Files\InspectIT\Templates", "*.tpl", SearchOption.TopDirectoryOnly); foreach (string curAvaialableTemplate in availableTemplates) { TemplateContact newTC = null; try { newTC = new TemplateContact(curAvaialableTemplate); returnTemplateContacts.Add(newTC); } catch (Exception ex) { //lock (_corruptTplLock) { this._corruptTemplates.Add(curAvaialableTemplate); //} #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } #endif } } e.Result = returnTemplateContacts; }
public void Dispose() { if (this.AddressBookContactList != null && AddressBookContactList.Count > 0) { //using a for loop because you can't remove items inside an enumeration of the collection for (int i = AddressBookContactList.Count - 1; i >= 0; i--) { AddressBookContact curContact = AddressBookContactList[i]; curContact.Dispose(); AddressBookContactList.RemoveAt(i); } } if (this.TemplateContacts != null && TemplateContacts.Count > 0) { for (int i = TemplateContacts.Count - 1; i >= 0; i--) { TemplateContact curContact = TemplateContacts[i]; curContact.Dispose(); TemplateContacts.RemoveAt(i); } } if (_templateBW != null) { _templateBW.Dispose(); } if (this.TemplateContacts != null) { foreach (TemplateContact curContact in this.TemplateContacts) { curContact.Dispose(); } this.TemplateContacts = null; } }