Пример #1
0
        /// <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();
            }
        }