/// <summary> /// 归还线程 /// </summary> /// <param name="thread"></param> private void Close(DME_Thread thread) { if (thread == null) return; WriteLog("归还线程" + thread.Name); RunningCount--; //看这个线程是活的还是死的,死的需要清除 if (!thread.IsAlive) { if (Threads.Contains(thread)) { cacheLock.EnterWriteLock(); try { if (Threads.Contains(thread)) { Threads.Remove(thread); DME_Log.WriteLine("归还" + thread.Name + "时发现,线程被关闭了,设计错误!"); } } finally { cacheLock.ExitWriteLock(); } } thread.Dispose(); } }