/// <summary> /// This method adds a counter to the collection. /// </summary> /// <param name="item"></param> public void Add(IXimuraPerformanceCounter item) { lock (syncObject) { mPerformanceCounters.Add(item); } }
/// <summary> /// This method returns true if the item in in the collection. /// </summary> /// <param name="item">The item to check.</param> /// <returns>Returns true if the item is in the collection.</returns> public bool Contains(IXimuraPerformanceCounter item) { lock (syncObject) { return mPerformanceCounters.Contains(item); } }
/// <summary> /// This method removes an item from the collection. /// </summary> /// <param name="item">The item to remove.</param> /// <returns>Return true if the item is successfully removed.</returns> public bool Remove(IXimuraPerformanceCounter item) { lock (syncObject) { return mPerformanceCounters.Remove(item); } }
/// <summary> /// This is the generic enumerator for the collection. /// </summary> /// <returns>Returns an lock-free enumerator for the collection.</returns> public IEnumerator<IXimuraPerformanceCounter> GetEnumerator() { IXimuraPerformanceCounter[] array = null; int len = 0; lock (syncObject) { len = mPerformanceCounters.Count; if (len > 0) { array = new IXimuraPerformanceCounter[len]; mPerformanceCounters.CopyTo(array, len); } } if (len == 0) yield break; foreach (IXimuraPerformanceCounter counter in array) yield return counter; }
/// <summary> /// This method copies the collection to the array passed. /// </summary> /// <param name="array">The array.</param> /// <param name="arrayIndex">The position in the index to begin copying.</param> public void CopyTo(IXimuraPerformanceCounter[] array, int arrayIndex) { lock (syncObject) { mPerformanceCounters.CopyTo(array, arrayIndex); } }