于c#多线程编程经常使用的线程,但是,因为线程的创建和销毁是非常资源 - 成本非常大。因此,我们使用线程池来解决问题,

在线程池的开始是申请一定数量的线程系统。和维护,有任务时间,假设你有空闲的线程,如果您分配一个线程来运行它。假设没有备用线程必须等待。

当线程运行完任务后,就归还给空暇线程。

配置线程池的一些參数

        RegisteredWaitHandle rhw;public void begin(){//ThreadPool.QueueUserWorkItem(new WaitCallback(CountProcess));//检查线程是否结束ThreadPool.SetMaxThreads(10, 10);ThreadPool.SetMinThreads(2, 2);rhw = ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(false), this.CheckThreadPool, null, 1000, false);}

这种方法是加入一个任务

ThreadPool.QueueUserWorkItem(new WaitCallback(test),obj);
public void test(Object n){for (int i = 0; i < int.Parse(n.ToString()); i++){Thread.Sleep(1000);}AddMessage(Thread.CurrentThread.Name + " 结束! 运行參数为:"+n);}

我们须要推断线程池是否运行结束。就要推断最大线程数和空暇线程数是否同样,假设同样表示如今没有任务运行,因此任务运行完毕

 //检查线程池的方法private void CheckThreadPool(object state, bool timeout){int workerThreads = 0;int maxWordThreads = 0;//int int compleThreads = 0;ThreadPool.GetAvailableThreads(out workerThreads, out compleThreads);ThreadPool.GetMaxThreads(out maxWordThreads, out compleThreads);//当可用的线数与池程池最大的线程相等时表示线程池中全部的线程已经完毕if (workerThreads == maxWordThreads){//当运行此方法后CheckThreadPool将不再运行rhw.Unregister(null);//此处增加全部线程完毕后的处理代码AddMessage("全部线程结束!");}}

上面简单的介邵起来 C#于 ThreadPool基本用法

版权声明:本文博主原创文章,博客,未经同意不得转载。

c# ThreadPoold使用心得相关推荐

  1. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  2. 测试心得:微图书销售小程序

    测试心得:微图书销售小程序 前言 这个学期差不多也将近结束,经过大半个学期,从项目需求的确认和项目文档的编写,到一步步的设计与实现,现在终于到了测试阶段,但是我们在测试阶段也暴露出了很多bug,但是每 ...

  3. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  4. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档

    计算机会计实习心得 计算机会计实习心得1 毕业实践环节是大学生在完成全部课程后.走向社会之前最真实的一个模拟实验,对于我们财会专业的学生,平时注意注重理论学习,缺乏实践锻炼,因此实习显得尤为重要.在本 ...

  5. html5考试总结300字,期中考心得300字5

    为了检验学生半个学期所学的知识而进行的一次考试,有利于学生比较正式地检验自己平时的学习水平,根据这个成绩,学生可以及时的调整学习心态和方法,更有效率地进行下一阶段的学习,期中考试主要考察学生前半学期的 ...

  6. Assembly学习心得

    http://blog.csdn.net/etmonitor/ Assembly学习心得 说明: 最近开始准备把学到的.NET知识重新整理一遍,眼过千遍不如手过一遍,所以我准备记下我的学习心得,已备参 ...

  7. 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得

    [IT168 专稿]不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?其实,Windows Ser ...

  8. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  9. 工作中InnoDB引擎数据库主从复制同步心得

    近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别 ...

  10. 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

    朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...

最新文章

  1. 入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型
  2. 自动释放池autoreleasepool
  3. 为什么linux自带python_为什么一些linux自带python,而不是C,C++,java等其他编程语言?...
  4. POJ - 2773 Happy 2006(欧几里得+构造)
  5. 转载:简单介绍Python中的try和finally和with方法
  6. JRE和JDK 1.3、1.4、1.5(5.0)、6.0 各版本下载地址大全(J2SDK,JavaSE JavaEE)
  7. 3项目里面全局用less变量 cli vue_vue-cli3配置使用vw实现移动端适配案例
  8. python获取select选中的值_python – 使用flask从select标签获取值
  9. 简单的php cms,30个很棒的PHP开源CMS内容管理系统
  10. android中ScrollView和GridView/ListView共存时,ScrollView不在顶部的解决方法
  11. 全国交通智慧升级,阿里云视频上云打造高速公路“视觉中枢”
  12. 近期你已经授权登录过_不查不知道,我的微信、QQ 居然授权登录过这么多应用!...
  13. java流程控制试讲_java试讲.ppt
  14. socket 长链接linux,手把手教你写 Socket 长连接
  15. telephony 总篇
  16. 520表白攻略 程序员必要的相亲准备 最近你相亲表白了嘛
  17. IntelliJ IDEA设置显示内存指示器的几种方法
  18. DDCTF 北京地铁
  19. ZYNQ 7020 FIFO讲解。
  20. 天下3 修改默认服务器,《天下3》默认字体修改指引 简单轻松

热门文章

  1. mysql text取出乱码_关于delphi2010读取MySQL数据库TEXT类型乱码的解决方案
  2. 统计自然语言处理梳理一:分词、命名实体识别、词性标注
  3. 常见的 Web 应用攻击示例
  4. 必须掌握的30种SQL语句优化
  5. 从零开始学 Web 之 jQuery(二)获取和操作元素的属性
  6. UISearchBar 点击取消回到原来位置时会跳动的解决方法
  7. 揭秘 IFTTT 每天处理几十亿事件数据的基础结构
  8. 和我一起学《HTTP权威指南》——Web服务器
  9. vi 和 vim 的区别
  10. vsftpd+mysql使用