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

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 = ; i < ; 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 = ;
for (int i = ; i < ; 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);
}

异步 ThreadPool的更多相关文章

  1. 你必须知道的ASP.NET-----IHttpAsyncHandler实质

    一.写在前面 一说到IHttpAsyncHandler,很多人会顾名思义地说'不就是异步IHttpHandler'吗? 但当我发出疑问:"你真知道他们的不同之处?你真会使用它吗?" ...

  2. StackExchange.Redis .net core Timeout performing 超时问题

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

  3. C#线程学习笔记七:Task详细用法

    一.Task类简介: Task类是在.NET Framework 4.0中提供的新功能,主要用于异步操作的控制.它比Thread和ThreadPool提供了更为强大的功能,并且更方便使用. Task和 ...

  4. C#线程学习笔记二:线程池中的工作者线程

    本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/18/ThreadPool.html,记录一下学习过程以备后续查用. 一.线程池基础 首先,创 ...

  5. StackExchange.Redis Timeout performing 超时问题

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

  6. 多线程异步编程示例和实践-Thread和ThreadPool

    说到多线程异步编程,总会说起Thread.ThreadPool.Task.TPL这一系列的技术.总结整理了一版编程示例和实践,分享给大家. 先从Thread和ThreadPool说起: 1. 创建并启 ...

  7. ThreadPool.QueueUserWorkItem引发的血案,线程池异步非正确姿势导致程序闪退的问题

    ThreadPool是.net System.Threading命名空间下的线程池对象.使用QueueUserWorkItem实现对异步委托的先进先出有序的回调.如果在回调的方法里面发生异常则应用程序 ...

  8. .NET 异步多线程,Thread,ThreadPool,Task,Parallel,异常处理,线程取消

    今天记录一下异步多线程的进阶历史,以及简单的使用方法 主要还是以Task,Parallel为主,毕竟用的比较多的现在就是这些了,再往前去的,除非是老项目,不然真的应该是挺少了,大概有个概念,就当了解一 ...

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

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

随机推荐

  1. 调试 Hadoop 源代码

    环境是 64bit Ubuntu 14.04 系统, jdk 1.7 以及 Eclipse Mars (4.5) 这里介绍两种调试 Hadoop 源代码的方法: 利用 Eclipse 远程调试工具和打 ...

  2. Identity Server 4 原理和实战(完结)_----选看 OAuth 2.0 简介(上)

    https://www.yuque.com/yuejiangliu/dotnet/cg95ni 代表资源所有者的凭据 授权 Authorization Grant 授权是一个代表着资源所有者权限的凭据 ...

  3. 天天连萌UE分析

    1.开始游戏消耗心,有消耗动画,[可以使用到副本次数上] 2.关卡结束,是个可爱的动画,[可以是潇洒的动画,一个吹箫的潇洒老翁或者帅哥] 3.点击爽快感:点击配对成功飘字及时且快速,[字体漂亮--潇洒 ...

  4. FZU 2150 Fire Game (高姿势bfs--两个起点)(路径不重叠:一个队列同时跑)

    Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows ...

  5. C#实现简易ajax调用后台方法

    在当前WEB当中,有些人都会抛弃asp.net的服务器控件,转而使用ajax来进行数据的交互和存储. 当我们大量使用ajax的时候,对于新手而言,肯定会创建很多的ashx或aspx页面,通过拼接参数, ...

  6. 参考手册(html css)

    HTML CSS DOM XML DOM   XML DOM Document JavaScript JavaScript RegExp JSP

  7. Lightoj1012【DFS】

    题意: 输出和' @ '相连有多少个' . '包括' @ ',' # '代表墙不能走: 思路: 基础DFS,找到起点,然后跑一下DFS就好了: #include<cstdio> #incl ...

  8. [Xcode 实际操作]八、网络与多线程-(2)使用UIApplication对象打开网页

    目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,打开指定的网页. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...

  9. vue2.0.js基础开发使用心得(结合实际项目对数据的增删改查)

    1.首先申明,没有使用vue 的组件,以及脚手架等,都是一些基础语法的使用. ------------------------------------------------------------- ...

  10. xml中运用js和jq

    1.点击事件参数为this 一般<a>标签中会使用href和onclick两种方式来进行进行页面跳转或执行动作,但是小编一般都会使用onclick来进行执行Ajax函数进行跳转,并同时使用 ...