/// <summary> /// 线程工作执行完成后执行回调方法 /// </summary> /// <param name="thread">当前执行线程</param> public void WorkComplete(ThreadExtend <T> thread) { lock (obj) { if (taskQueue.Count() > 0) { HandlerItem <T> taskItem = taskQueue.Dequeue(); thread.SetWorkTask(taskItem); thread.StartThread(); } else { workThread.Remove(thread.Key); if (freeThread.Count() >= min) { allThread.Remove(thread.Key); thread.Close(); thread.Dispose(); } else { thread.SetWorkTask(null); freeThread.Enqueue(thread); } if (!workThread.Any()) { Dispose(); } } } }