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

SetItemTimeout() private method

private SetItemTimeout ( System.Web.Caching.CacheItem ci, System.DateTime absoluteExpiration, System.TimeSpan slidingExpiration, CacheItemRemovedCallback onRemoveCallback, CacheItemUpdateCallback onUpdateCallback, string key, bool doLock ) : void
ci System.Web.Caching.CacheItem
absoluteExpiration System.DateTime
slidingExpiration System.TimeSpan
onRemoveCallback CacheItemRemovedCallback
onUpdateCallback CacheItemUpdateCallback
key string
doLock bool
return void
		void SetItemTimeout (CacheItem ci, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemRemovedCallback onRemoveCallback,
				     CacheItemUpdateCallback onUpdateCallback, string key, bool doLock)
		{
			bool disableExpiration = DisableExpiration;

			if (!disableExpiration) {
				ci.SlidingExpiration = slidingExpiration;
				if (slidingExpiration != NoSlidingExpiration)
					ci.AbsoluteExpiration = DateTime.Now + slidingExpiration;
				else
					ci.AbsoluteExpiration = absoluteExpiration;			
			}
			
			ci.OnRemoveCallback = onRemoveCallback;
			ci.OnUpdateCallback = onUpdateCallback;
			
			try {
				if (doLock)
					cacheLock.EnterWriteLock ();

				if (key != null) {
					cache [key] = ci;
					cache.EvictIfNecessary ();
				}
				
				ci.LastChange = DateTime.Now;
				if (!disableExpiration && ci.AbsoluteExpiration != NoAbsoluteExpiration) {
					ci.IsTimedItem = true;
					EnqueueTimedItem (ci);
				}
			} finally {
				if (doLock) {
					// See comment at the top of the file, above cacheLock declaration
					cacheLock.ExitWriteLock ();
				}
			}
		}

Same methods

Cache::SetItemTimeout ( string key, System.DateTime absoluteExpiration, System.TimeSpan slidingExpiration, bool doLock ) : void