3

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

 1 year ago
source link: https://www.cnblogs.com/lzhdim/p/17018369.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

Posted on 2023-01-01 17:56  lzhdim  阅读(151)  评论(0)  编辑  收藏  举报

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

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

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

      o_230101095136_1.png

  一、线程池代码;

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

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

     

o_230101095144_2.png

  二、线程管理器;

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

  

o_230101095148_3.png

  三、线程定义列表;

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

  1)线程运行函数定义;

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

  

o_230101095152_4.png

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

  2、线程列表定义;

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

     

o_230101095155_5.png

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

  四、主程序调用;

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

  

o_230101095200_6.png

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

  这里提供代码下载:

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

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

o_o_Code.png     Austin Liu  刘恒辉
    Lzhdim Group's Chairman,Project Manager and Software Designer
    E-Mail:[email protected]
    Blog:  https://lzhdim.cnblogs.com

欢迎收藏和转载此博客中的博文,但是请注明出处,给作者一个与大家交流的空间。谢谢大家。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK