public void addItem(DataItem aItem) { aItem.mConnection = this; ConnectionState += new EventHandler(aItem.onConnectionStateChanged); aItem.initAccess(); mItemListLock.EnterWriteLock(); //======================================== try { mItemList.Add(aItem); mItemListChanged = true; } finally { //======================================== mItemListLock.ExitWriteLock(); } }