沪上百卉 2023-03-17 10:12 采纳率: 23.8%
浏览 33

C# 多线程 线程池 遍历 DataTable

C# 多线程 线程池 遍历 DataTable 怎么让多线程,线程池的操作循环完DataTable 再 走下面的方法 等线程的操作全部循环结束后再走下面的方法 请给案例

  • 写回答

5条回答 默认 最新

  • wanghui0380 2023-03-17 10:54
    关注

    额,这种事情都不必要强调线程不线程,时代在发展。20年前人们口里的宝贝,如今其实早就不当回事了

    你这要求我们直接plinq即可(虽然他内部用了,但是我觉得不必强调,天天口里强调那些的,教出来的反而不会写代码了,因为他们把这些玩意看得太高级,太有技术了,所以反而忘了简单快乐的写代码。何必天天闹心掉头发的折腾20年前的高级)

    DataTable dt = new DataTable();
    dt.Columns.Add("id", typeof(Int32));
    dt.LoadDataRow(new Object[] { 1 }, true);
    dt.LoadDataRow(new Object[] { 2 }, true);
    dt.LoadDataRow(new Object[] { 3 }, true);
    dt.LoadDataRow(new Object[] { 4 }, true);
    
    
    dt.AsEnumerable().AsParallel().ForAll(row =>
    {
        Processrow(row);
    });
    
    Console.WriteLine("已经循环完毕");
    void Processrow(DataRow row)
    {
        //打印rowid和执行线程id
        Console.WriteLine($"{row["id"]}--{Thread.CurrentThread.ManagedThreadId}");
        Thread.Sleep(1000*5); //加个5秒延迟是让你能明显看到,你他全部执行完毕后才会进入后面的
    
    }
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月17日

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)