System.Web.Caching.Cache.EnqueueTimedItem C# (CSharp) Method

EnqueueTimedItem() private method

private EnqueueTimedItem ( System.Web.Caching.CacheItem item ) : void
item System.Web.Caching.CacheItem
return void
		void EnqueueTimedItem (CacheItem item)
		{
			long remaining = Math.Max (0, (long)(item.AbsoluteExpiration - DateTime.Now).TotalMilliseconds);
			item.ExpiresAt = item.AbsoluteExpiration.Ticks;
			
			if (timedItems == null)
				timedItems = new CacheItemPriorityQueue ();
			
			if (remaining > 4294967294)
				// Maximum due time for timer
				// Item will expire properly anyway, as the timer will be
				// rescheduled for the item's expiration time once that item is
				// bubbled to the top of the priority queue.
				expirationTimerPeriod = 4294967294;
			else
				expirationTimerPeriod = remaining;

			if (expirationTimer == null)
				expirationTimer = new Timer (new TimerCallback (ExpireItems), null, expirationTimerPeriod, expirationTimerPeriod);
			else
				expirationTimer.Change (expirationTimerPeriod, expirationTimerPeriod);
			
			timedItems.Enqueue (item);
		}