Пример #1
0
        /// <summary>
        /// 添加要清除的httpHandler
        /// </summary>
        /// <param name="handler">httpHandler</param>
        public void Add(LifetimeHttpHandler handler)
        {
            var entry = new TrackingEntry(handler);

            this.trackingEntries.Enqueue(entry);

            // 从0变为1,要启动清理作业
            if (Interlocked.Increment(ref this.trackingEntryCount) == 1)
            {
                this.StartCleanup();
            }
        }
Пример #2
0
 /// <summary>
 /// 当有httpHandler失效时
 /// </summary>
 /// <param name="handler">httpHandler</param>
 private void OnHttpHandlerDeactivate(LifetimeHttpHandler handler)
 {
     // 切换激活状态的记录的实例
     this.lifeTimeHttpHandlerLazy = new Lazy <LifetimeHttpHandler>(this.CreateHttpHandler, true);
     this.httpHandlerCleaner.Add(handler);
 }
Пример #3
0
 /// <summary>
 /// 监视生命周期的记录
 /// </summary>
 /// <param name="handler">激活状态的httpHandler</param>
 public TrackingEntry(LifetimeHttpHandler handler)
 {
     this.disposable    = handler.InnerHandler;
     this.weakReference = new WeakReference(handler);
 }