C#实现线程池的简单示例
本文以实例演示了C#线程池的简单实现方法。程序中定义了一个对象类,用以包装参数,实现多个参数的传递。成员属性包括两个输入参数和一个输出参数。代码简单易懂,备有注释便于理解。
具体实现代码如下:
usingSystem;
usingSystem.Threading;
//定义对象类,用以包装参数,实现多个参数的传递
classPacket
{
//成员属性包括两个输入参数和一个输出参数
protectedinternalStringinval1;
protectedinternalStringinval2;
protectedinternalStringoutval;
}
classThreadPoolExam
{
//定义执行相同内容的两个方法
publicvoidTask1(objectObj)
{
//声明Packet类对象,用以传递参数
PacketPacketObj;
PacketObj=(Packet)Obj;
Console.WriteLine("任务一中的第一个输入参数:"+PacketObj.inval1);
Console.WriteLine("任务一中的第二个输入参数:"+PacketObj.inval2);
//为输出参数赋值
PacketObj.outval=PacketObj.inval1+""+PacketObj.inval2;
}
publicvoidTask2(objectObj)
{
PacketPacketObj;
PacketObj=(Packet)Obj;
Console.WriteLine("任务二中的第一个输入参数:"+PacketObj.inval1);
Console.WriteLine("任务二中的第二个输入参数:"+PacketObj.inval2);
PacketObj.outval=PacketObj.inval1+""+PacketObj.inval2;
}
staticvoidMain()
{
//声明两个Packet对象,并为输入参数赋值
PacketPacketObj1=newPacket();
PacketPacketObj2=newPacket();
PacketObj1.inval1="Task1-1";
PacketObj1.inval2="Task1-2";
PacketObj2.inval1="Task2-1";
PacketObj2.inval2="Task2-2";
ThreadPoolExamtps=newThreadPoolExam();
//将方法放入线程池的队列中
ThreadPool.QueueUserWorkItem(newWaitCallback(tps.Task1),PacketObj1);
ThreadPool.QueueUserWorkItem(newWaitCallback(tps.Task2),PacketObj2);
Console.ReadLine();
}
}热门推荐
10 小学毕业父母简短祝福语
11 幼儿生日祝福语模板简短
12 新娘妈妈的祝福语简短
13 邻居聚会祝福语大全简短
14 十条祝福语简短
15 给同学祝福语的简短
16 过年祝福语简短祝妈妈
17 祝女儿简短祝福语大全
18 恩师诗词祝福语简短大全