线程池是单例,一个进程里只有一个线程池

private void btnThreadPool_Click(object sender, EventArgs e){Stopwatch watch = new Stopwatch();watch.Start();Console.WriteLine();Console.WriteLine("****************btnThreadPool_Click Start 主线程id={0}*****************", Thread.CurrentThread.ManagedThreadId);List<ManualResetEvent> mreList = new List<ManualResetEvent>();for (int i = 0; i < 5; i++){int b = i;mreList.Add(new ManualResetEvent(false));WaitCallback method = t =>{this.TestThreadWithoutReturn(string.Format("btnThreadPool_Click_{0}", b));Console.WriteLine("我是回调 btnThreadPool_Click_{0}", b);mreList[b].Set();};ThreadPool.QueueUserWorkItem(method);//WaitCallback method = t =>  this.TestThreadWithoutReturn(t.ToString ());//ThreadPool.QueueUserWorkItem(method, string.Format("btnThreadPool_Click_{0}", b));}

        private void TestThreadWithoutReturn(string name){Console.WriteLine("TestThread Start Name={2},当前线程的id:{0},当前时间为{1}", Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("hh:mm:ss:fff"), name);long Sum = 0;for (int i = 1; i < 999999999; i++){Sum += i;}//Thread.Sleep(2000);Console.WriteLine("TestThread End Name={2},当前线程的id:{0},当前时间为{1}", Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("hh:mm:ss:fff"), name);}

转载于:https://www.cnblogs.com/xiao9426926/p/6429540.html

异步 ThreadPool相关推荐

  1. StackExchange.Redis Timeout performing 超时问题

    最近在做的一个项目,用的.net core 2.1,然后缓存用的Redis,缓存相关封装是同事写的,用的驱动是StackExchange.Redis version 2.0.571 ,一直听说这个驱动 ...

  2. RabbitMQ 学习笔记

    RabbitMQ 学习笔记 RabbitMQ 学习笔记 1. 中间件 1.1 什么是中间件 1.2 为什么要使用消息中间件 1.3 中间件特点 1.4 在项目中什么时候使用中间件技术 2. 中间件技术 ...

  3. 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)

    一. 背景 在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并 ...

  4. C#~异步编程再续~你必须要知道的ThreadPool里的throw

    问题依旧存在 之前写过相关文章异步编程的文章,本文主要还是一点补充,之前在IIS经常发w3wp进程无做挂了的情况,但一直没能找到真正的原因,而查找相关资料,找了一些相关的文章,如await和async ...

  5. Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新.在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是 ...

  6. Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比 标签: AndroidAsyncTaskThreadPool异步加载view 2 ...

  7. 异步多线程之ThreadPool详解

    上一篇:异步多线程之Thread 下一篇:异步多线程之入Task 介绍 ThreadPool 是 .net 2.0 时代的产物,有了 Thread 为什么还会有 ThreadPool 呢?Thread ...

  8. C# ThreadPool.QueueUserWorkItem()之线程池异步

    项目中有大文件传输需求,用户在网页端填好某个IP下的共享目录,服务端通过所填路径检测共享目录下的文件以供用户选择待传输的文件, 用户勾选相应文件后点击提交,服务端遂开始执行文件传输.所有的逻辑过程都在 ...

  9. Spring Boot 异步请求和异步调用

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 一.Spring Boot中异步请求的使用 1.异步请求与同步请求 ...

最新文章

  1. 观察者模式(Observer Pattern)
  2. NLayerAppV3-Distributed Service Layer(分布式服务层)
  3. BuckleScript 1.0发布,面向OCaml的开源JavaScript编译器
  4. Pro *C/C++学习笔记
  5. C++实现对数学基本运算表达式的解析
  6. 一篇文章快速搞懂十大排序算法(C++实现源码)
  7. python中oxf2是多少_Python学习笔记[2]
  8. hadoop常见组件及其功能
  9. jieba分词怎么操作_如何运用jieba库分词
  10. category 详解
  11. 硅芯思见:SystemVerilog中的类型转换有哪些
  12. Oracle 实用技巧之不知道密码情况下 dblink 的迁移
  13. 点击a标签弹出iframe_iframe标签与a标签
  14. 简化电脑操作,不让多余操作浪费你的生命
  15. androID程序!BAT大厂面试基础题集合,附带学习经验
  16. 关于Linux内核中有多少代码是来自华人
  17. 镝铽钆钬等元素在烧结钕铁硼中的作用
  18. Quality Tools for Android
  19. 弱网络模拟测试工具---易测app
  20. 数字图像处理基础之--像素间的关系(邻接/连通)

热门文章

  1. linux grep查找命令使用示例
  2. 【完整代码】Scala akka入门示例
  3. JVM调优:常见垃圾回收器组合
  4. Python3 文件操作
  5. Linux shell ==运算符
  6. Windows彻底卸载删除MySQL
  7. AngularJS路由使用示例
  8. python定义类_提升你的Python编程能力,细说类的继承,拿走不谢
  9. mysql mts_技术分享 | 回顾 MySQL 的 MTS
  10. xil_printf打印遇到的问题