上次编写了一个小软件,用于练手及自己的一个小工具集合。今天把其中的线程池和管理器的代码抽取出来,写成一个博文,让需要的朋友能够进行学习和应用。

这个线程管理器包括了3个类库和一个应用程序,见下图:

第一个是窗体磁吸屏幕的类库,以前有过一个VB编的类库(磁性窗体源码开源 - 开源研究系列文章),这次把C#编写的类库放出来,以后有介绍。第二个为线程池定义及管理器的类库,下面有介绍。第三个为主应用程序,下面有介绍。第四个为需要运行的所有线程的列表定义,以后所有需要运行的线程都在这个类库定义,直接替换该DLL文件即可,下面有介绍。

  一、线程池代码;

  这个类库就是线程池定义及管理的代码。见下图:

主要是定义了线程池的操作方法,以及提供了一个线程管理器窗体。里面的代码大家浏览一下即可,使用的是线程操作的代码,包括线程的添加、启动、停止等等。

  二、线程管理器;

  类库里面带有一个线程管理器窗体,用于线程的基本操作。直接在主程序里进行初始化及调用即可。

  

  三、线程定义列表;

  里面的ThreadArrayList里面定义了所有需要运行的线程,这里进行下介绍。

  1)线程运行函数定义;

  首先,需要定义线程运行的函数:

  

  需要声明线程testThread1,里面的线程计算的函数TestFunction1,以及线程运行的函数TestThreadFunction1。也可以直接将计算函数放到运行函数里,节省代码及运行函数。

  2、线程列表定义;

定义了线程函数,这里就需要初始化线程列表,以便于在主程序里进行线程管理及添加。

  这里强调一下,因为.NET Framework里的线程定义,必须将线程设置为前台,即threadModule.ThreadInstance.IsBackground = false; 否则在线程管理器窗体中显示不了线程的状态。

  四、主程序调用;

  主程序,包括了唯一判断函数,窗体函数,应用程序函数等,具体请读者自己去看代码。见下图:

  

  上面介绍了C#开发的线程池定义及管理器的代码,希望通过此博文,达到引用的效果,对需要的读者能够起到帮助及在其它地方能够使用到。后续会对其它的一些代码进行介绍,敬请期待。

  这里提供代码下载:

  https://download.csdn.net/download/lzhdim/87357279

Etc.今天是2023年的元旦,在这个时刻,祝愿祖国繁荣昌盛,国泰民安。

C#开发的线程池和管理器 - 开源研究系列文章的更多相关文章

  1. C#面向插件级别的软件开发 - 开源研究系列文章

    在现在的面向对象的分析与设计软件开发过程中,最开始就是面向对象的软件开发.但是,在实际的软件开发过程中,很多都是面向接口的开发方式,这种是一种面向对象开发的模式.但是,今天笔者给大家带来的是面向插件的 ...

  2. Android开发之线程池使用总结

    线程池算是Android开发中非常常用的一个东西了,只要涉及到线程的地方,大多数情况下都会涉及到线程池.Android开发中线程池的使用和Java中线程池的使用基本一致.那么今天我想来总结一下Andr ...

  3. C#线程篇---线程池如何管理线程(6完结篇)

    C#线程基础在前几篇博文中都介绍了,现在最后来挖掘一下线程池的管理机制,也算为这个线程基础做个完结. 我们现在都知道了,线程池线程分为工作者线程和I/O线程,他们是怎么管理的? 对于Microsoft ...

  4. Webpack: 为Web开发而生的模块管理器[转]

    Webpack: 为Web开发而生的模块管理器 原文地址:http://hanjianwei.com/2014/09/10/webpack-package-manager-for-web/ 10 Se ...

  5. ExecutorService实际上是一个线程池的管理工具

    在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动.调度.管理线程的一大堆API了.在Java5以后,通过Executor来启动线程比用 Thread的start()更好.在新特征 ...

  6. 线程池的管理类MyThreadPoolManager

    import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Executor; import java.ut ...

  7. 安卓开发:UI组件-布局管理器和文本显示

    接下来的随笔,记录了在学习b站up主:天哥在奔跑,录制的教学视频的同时,进行一个app开发. up主:天哥在奔跑 视频地址:https://www.bilibili.com/video/av38409 ...

  8. Android 开发 ThreadPool(线程池) 总结

    本文是介绍线程池的基础篇. 一.线程池的作用 创建异步线程的弊端: 1.每次new Thread创建对象,导致性能变差. 2.缺乏统一的管理,可能导致无限制的线程运行,严重的后果就是OOM 或者死机. ...

  9. 如何应用CLR线程池来管理多线程

        class Program     {         static void Main(string[] args)         {             int intWorkerT ...

  10. android开发4:Android布局管理器1(线性布局,相对布局RelativeLayout-案例)

    控件类概述 View 可视化控件的基类 属性名称 对应方法 描述 android:background setBackgroundResource(int) 设置背景 android:clickabl ...

随机推荐

  1. 微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作

    写在前面 明天就是周五了,这周有那么一两天心情特别不好,真的是做什么都没兴致,所以导致整个人都很丧,什么都不想做. 本打算周一就更新这篇文章的,但由于公司一直加班,每天到家很晚,都是挤时间去学,理解后 ...

  2. Linux根据时间过滤文件

    1.显示20分钟前的文件:       find /sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec ls -l {} \; 2.删除20分钟 ...

  3. 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件

    Chrome插件,官方名称extensions(扩展程序):为了方便理解,以下都称为插件. 我们开发的插件需要在浏览器里面运行,打开浏览器,通过右上角的三个点(自定义及控制)-更多工具-拓展程序-打开 ...

  4. [Thread] Synchronized

    1.Monitor对象 Monitor对象被称为管程或者监视器锁. 在Java中,每一个对象实例都会关联一个Monitor对象. 这个Monitor对象既可以与对象一起创建销毁,也可以在线程试图获取对 ...

  5. Bootstrap中的dropdown、下拉选择框、dropdown-toggle

    注意:如果您想要单独引用该插件的功能,那么您需要引用 dropdown.js.可以引用 bootstrap.js 或压缩版的 bootstrap.min.js. <!DOCTYPE html&g ...

  6. 齐博x1 万能fun 调用任意数据表 任意字段就是这么任性调用

    列举了几个常用的查询进行简单封装,虽然系统也有内置的但是很多人不大会就二次封装简化了一下. 这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说fun可以万能调用 1获取任意表的 ...

  7. 即兴小探华为开源行业领先大数据虚拟化引擎openLooKeng

    @ 目录 概述 定义 背景 特点 架构 关键技术 应用场景 安装 单台部署 集群部署 命令行接口 连接器 MySQL连接器 ClickHouse连接器 概述 定义 openLooKeng 官网地址 h ...

  8. Three.js中加载外部fbx格式的模型素材

    index.html部分: index.js部分: Scene.js部分:

  9. gin框架——使用viper读取配置

    什么是viper Viper是Go应用程序的完整配置解决方案,包括12-Factor(也称为"十二要素",是一套流行的应用程序开发原则. 其实我也不是很清楚)应用程序.它被设计为在 ...

  10. Python基础部分:11、文件和光标移动

    目录 一.文件操作 1.文件的概念 2.代码打开文件的方式 二.文件读写模式 1.'r' 只读模式 read 2.'w' 只写模式 write 3.'a' 尾部追写模式 add 三.文件操作模式 1. ...