欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)線程池的簡單示例

 更新時間:2014年07月29日 09:43:52   投稿:shichen2014  
這篇文章主要介紹了C#實(shí)現(xiàn)線程池的簡單示例,代碼簡潔易懂,有助于初學(xué)的朋友更好的理解C# 的線程池,需要的朋友可以參考下

本文以實(shí)例演示了C#線程池的簡單實(shí)現(xiàn)方法。程序中定義了一個對象類,用以包裝參數(shù),實(shí)現(xiàn)多個參數(shù)的傳遞。成員屬性包括兩個輸入?yún)?shù)和一個輸出參數(shù)。代碼簡單易懂,備有注釋便于理解。

具體實(shí)現(xiàn)代碼如下:

using System;
using System.Threading;
//定義對象類,用以包裝參數(shù),實(shí)現(xiàn)多個參數(shù)的傳遞
class Packet
{
 //成員屬性包括兩個輸入?yún)?shù)和一個輸出參數(shù)
 protected internal String inval1;
 protected internal String inval2;
 protected internal String outval;
}
class ThreadPoolExam
{
 //定義執(zhí)行相同內(nèi)容的兩個方法
 public void Task1(object Obj)
 {
 //聲明Packet類對象,用以傳遞參數(shù)
 Packet PacketObj;
 PacketObj = (Packet)Obj;
 Console.WriteLine("任務(wù)一中的第一個輸入?yún)?shù):" + PacketObj.inval1);
 Console.WriteLine("任務(wù)一中的第二個輸入?yún)?shù):" + PacketObj.inval2);
 //為輸出參數(shù)賦值
 PacketObj.outval = PacketObj.inval1 + " " + PacketObj.inval2;
 }
 public void Task2(object Obj)
 {
 Packet PacketObj;
 PacketObj = (Packet)Obj;
 Console.WriteLine("任務(wù)二中的第一個輸入?yún)?shù):" + PacketObj.inval1);
 Console.WriteLine("任務(wù)二中的第二個輸入?yún)?shù):" + PacketObj.inval2);
 
 PacketObj.outval = PacketObj.inval1 + " " + PacketObj.inval2;
 }
 static void Main()
 {
 //聲明兩個Packet對象,并為輸入?yún)?shù)賦值
 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();
 //將方法放入線程池的隊(duì)列中
 ThreadPool.QueueUserWorkItem(new WaitCallback(tps.Task1), PacketObj1);
 ThreadPool.QueueUserWorkItem(new WaitCallback(tps.Task2), PacketObj2);
 Console.ReadLine();
 }
}

相關(guān)文章

最新評論