zoukankan      html  css  js  c++  java
  • c# 线程池多任务处理并返回值

    先新建一个封装类 包含 manual和返回值 

    using System;
    using System.Threading;
    public class ThreadReturnData
    {
    public ManualResetEvent manual;
    public string res;

    public void ReturnThreadData(object obj)
    {
    //操作方法
    res = DoSomething(obj);
    manual.Set();
    }
    }

    //-------------------------------------------------------------------------------------------------

    List<ThreadReturnData> testList = new List<ThreadReturnData>();
    IList<ManualResetEvent> arrManual = new List<ManualResetEvent>();
    for (int i = 0; i < i; i++)
    {
    ThreadReturnData temp = new ThreadReturnData();
    temp.manual = new ManualResetEvent(false);
    arrManual.Add(temp.manual);
    ThreadPool.QueueUserWorkItem(new WaitCallback(temp.ReturnThreadData), i);
    testList.Add(temp);
    }
    }
    if (arrManual.Count > 0)
    {
    ////等待所有线程执行完
    WaitHandle.WaitAll(arrManual.ToArray());
    }
    foreach (ThreadReturnData d in testList)
    {
    d.res;
    //dowork
    }

  • 相关阅读:
    11111
    JavaScript基础
    CSS使用
    CSS 基本
    前端之HTML
    Python 迭代器和生成器
    Python day11
    Python 函数
    第十七篇:django基础(二)
    第十六篇:django基础
  • 原文地址:https://www.cnblogs.com/luozhai714/p/14522309.html
Copyright © 2011-2022 走看看