/// <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); } } } } }