執行緒池
執行緒池
.NET執行緒池,是指由CLR管理的執行緒池,當一個執行緒被使用完畢後並不會立刻銷毀,所以在執行緒池當中會存在一些沒有被銷毀的執行緒,而當應用程式需要一個新的執行緒時,就可以從執行緒池中直接獲取一個已經存在的執行緒。
.NET執行緒池你可以控制執行緒池的大小,但是沒辦法控制執行緒池何時開始執行工作。 並且執行緒池所有執行緒,都是屬於後台執行緒。
ThreadPool
使用執行緒池的方法相當簡單,如下
public class ThreadPoolDemo
{
public void Run()
{
string message = "Some Message";
bool result = System.Threading.ThreadPool.QueueUserWorkItem(Work, message);
// 如果執行緒分配成功 result = true
if (result)
{
Console.WriteLine("執行緒分配成功,按Enter可結束主執行緒,接著背景執行緒會被關閉");
}
else
{
// 分配執行緒失敗
}
Console.Read();
}
private void Work(object data)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine("背景執行緒工作執行中: {0}", data.ToString());
Thread.Sleep(1000);
}
}
}
使用執行緒池沒辦法知道工作什麼時候結束,而且也沒辦法有回傳值。 因此執行緒池比較適合用在一些簡單沒有回傳值的操作。
一天一分享,身體好健康。
該追究的不是過去的原因,而是現在的目的。