C# 使用线程池设置每个线程的执行时间,怎样设置结束时间?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 使用线程池设置每个线程的执行时间,怎样设置结束时间?相关的知识,希望对你有一定的参考价值。

参考技术A

先建一个类下面的成员,来存放进程。

List<Thread> pool = new List<Thread>();

Thread t = new Thread(new ThreadStart(gethtmlContent));

pool.Add(t);

t.Start();

给类加一个Timer。

System.Timers.Timer timer = new Timer();

timer.Interval = 30000;

timer.Elasped += new EventHandler(this. timerElapsed);

timer.Enabled = true;

timer.Start();

然后增加timer的事件处理。

private void timerElapsed(object sender, EvenArgs e)

//终止进程

foreach(Thread t in pool)

if(t != null && t.IsAlive)

if(!t.Join(5)) t.Abort();

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。

C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

线程池设计

1、创建一个阻塞队列

(1)可以使用链表实现

(2)设置一个最大容量

(3)定义一个插入方法,队列满则阻塞;定义一个移除方法,队列空则阻塞。

 

2、创建一组线程

(1)每个线程运行时从阻塞队列获取任务执行。

(2)线程可以被中断。

 

3、执行和终止方法实现

(1)调用执行方法,线程池往阻塞队列插入一个任务,然后线程池中的空闲线程不停循环获取任务去执行。

(2)调用终止方法,运行中的线程会继续执行到结束,阻塞中的线程不会再执行。

以上是关于C# 使用线程池设置每个线程的执行时间,怎样设置结束时间?的主要内容,如果未能解决你的问题,请参考以下文章

线程池的选择

c#中怎样让两个函数同时执行

C#的 Task,Thread,ThreadPool 之间有啥异同

让线程池的所有线程执行给定的函数

线程池设计

c#线程停止