public List<Item> GetAllItems() { List<Item> result; _itemsRWLS.EnterReadLock(); try { result = new List<Item>(_items.Values); } finally { _itemsRWLS.ExitReadLock(); } return result; }