Exemplo n.º 1
0
 /// <summary>
 /// 重建数据集合
 /// </summary>
 /// <param name="value"></param>
 private void create(valueType value)
 {
     try
     {
         array.value <valueType>[] newArray = new array.value <valueType> [Count << 1];
         System.Array.Copy(array, 0, newArray, 0, Count);
         newArray[Count].Value = value;
         array = newArray;
         ++Count;
     }
     finally { Monitor.Exit(arrayLock); }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 清除数据集合
        /// </summary>
        /// <param name="count">保留数据数量</param>
        /// <returns>被清除的数据集合</returns>
        internal array.value <valueType>[] GetClear(int count)
        {
            Monitor.Enter(arrayLock);
            int length = Count - count;

            if (length > 0)
            {
                array.value <valueType>[] removeBuffers;
                try
                {
                    removeBuffers = new array.value <valueType> [length];
                    System.Array.Copy(array, Count = count, removeBuffers, 0, length);
                    System.Array.Clear(array, count, length);
                }
                finally { Monitor.Exit(arrayLock); }
                return(removeBuffers);
            }
            else
            {
                Monitor.Exit(arrayLock);
            }
            return(nullValue <array.value <valueType> > .Array);
        }