예제 #1
0
 /// <summary>
 /// 回收资源,必须在upload跟load方法finally中调用
 /// </summary>
 /// <param name="taskId"></param>
 public void RecycleResource(string taskId)
 {
     if (_lockDic.ContainsKey(taskId))
     {
         lock (_lockDic[taskId])
         {
             if (ReferenceCount.ContainsKey(taskId))
             {
                 ReferenceCount[taskId] -= 1;
                 if (ReferenceCount[taskId] == 0)
                 {
                     bool result = IsStopDic.TryRemove(taskId, out result);
                     if (!result)
                     {
                         Log.WriteLog("Recycel isStop failed");
                     }
                     MemoryCache.Instence().Recycle(taskId);
                     _lockDic.Remove(taskId);
                     ReferenceCount.Remove(taskId);
                 }
             }
         }
     }
 }