当前位置: 移动技术网 > IT编程>开发语言>c# > C#实现线程池的简单示例

C#实现线程池的简单示例

2019年07月18日  | 移动技术网IT编程  | 我要评论

本文以实例演示了c#线程池的简单实现方法。程序中定义了一个对象类,用以包装参数,实现多个参数的传递。成员属性包括两个输入参数和一个输出参数。代码简单易懂,备有注释便于理解。

具体实现代码如下:

using system;
using system.threading;
//定义对象类,用以包装参数,实现多个参数的传递
class packet
{
 //成员属性包括两个输入参数和一个输出参数
 protected internal string inval1;
 protected internal string inval2;
 protected internal string outval;
}
class threadpoolexam
{
 //定义执行相同内容的两个方法
 public void task1(object obj)
 {
 //声明packet类对象,用以传递参数
 packet packetobj;
 packetobj = (packet)obj;
 console.writeline("任务一中的第一个输入参数:" + packetobj.inval1);
 console.writeline("任务一中的第二个输入参数:" + packetobj.inval2);
 //为输出参数赋值
 packetobj.outval = packetobj.inval1 + " " + packetobj.inval2;
 }
 public void task2(object obj)
 {
 packet packetobj;
 packetobj = (packet)obj;
 console.writeline("任务二中的第一个输入参数:" + packetobj.inval1);
 console.writeline("任务二中的第二个输入参数:" + packetobj.inval2);
 
 packetobj.outval = packetobj.inval1 + " " + packetobj.inval2;
 }
 static void main()
 {
 //声明两个packet对象,并为输入参数赋值
 packet packetobj1 = new packet();
 packet packetobj2 = new packet();
 packetobj1.inval1 = "task 1 - 1";
 packetobj1.inval2 = "task 1 - 2";
 packetobj2.inval1 = "task 2 - 1";
 packetobj2.inval2 = "task 2 - 2";
 threadpoolexam tps = new threadpoolexam();
 //将方法放入线程池的队列中
 threadpool.queueuserworkitem(new waitcallback(tps.task1), packetobj1);
 threadpool.queueuserworkitem(new waitcallback(tps.task2), packetobj2);
 console.readline();
 }
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网