RemObjects.InternetPack.ConnectionQueue.RemoveNulls C# (CSharp) Метод

RemoveNulls() публичный Метод

public RemoveNulls ( ) : void
Результат void
		public void RemoveNulls()
		{
			this.fHead = 0;
			this.fTail = 0;
			this.fCount = 0;

			for (Int32 i = 0; i < this.fCapacity; i++)
			{
				if (this.fArray[i] != null)
				{
					this.Enqueue(this.fArray[i]);
				}
			}
		}

Usage Example

Пример #1
0
        private void CleanupCallback(Object state)
        {
            DateTime ExpireTime = DateTime.Now.AddSeconds(-this.Timeout);

            lock (this.fCache)
            {
                foreach (DictionaryEntry entry in this.fCache)
                {
                    ConnectionQueue lQueue    = (ConnectionQueue)entry.Value;
                    Boolean         lModified = false;

                    for (Int32 i = lQueue.UnderlyingArray.Length - 1; i >= 0; i--)
                    {
                        if (lQueue.UnderlyingArray[i] == null || lQueue.UnderlyingArray[i].LastUsed >= ExpireTime)
                        {
                            continue;
                        }

                        lModified = true;
                        lQueue.UnderlyingArray[i].Dispose();
                        lQueue.UnderlyingArray[i] = null;
                    }

                    if (lModified)
                    {
                        lQueue.RemoveNulls();
                    }
                }
            }
        }