1.多线程执行方法
/// <summary>
/// 多线程执行
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="coll"></param>
/// <param name="action">委托</param>
/// <param name="maxTask">最大线程数</param>
public static void ExecuteByMulitTask<T>(this IEnumerable<T> coll, Action<T> action, int maxTask = 3)
{
List<Task> taskPool = new List<Task>();
ConcurrentQueue<T> collQueue = new ConcurrentQueue<T>();
coll.ToList().ForEach(t=>
{
collQueue.Enqueue(t);
});
for (int i = 0; i < maxTask; i++)
{
taskPool.Add(new Task(()=>
{
//数据循环出队