ThreadPool.QueueUserWorkItem方法允許您將工作項添加到線程池隊列中,以便在線程池中的可用線程上執行。以下是使用ThreadPool.QueueUserWorkItem的基本示例:
using System;
using System.Threading;
class Program
{
static void Main()
{
for (int i = 0; i < 10; i++)
{
ThreadPool.QueueUserWorkItem(DoWork, i);
}
Console.WriteLine("All work items queued.");
Console.ReadLine();
}
static void DoWork(object state)
{
int workItemNum = (int)state;
Console.WriteLine("Work item {0} starting.", workItemNum);
Thread.Sleep(1000); // 模擬工作
Console.WriteLine("Work item {0} completed.", workItemNum);
}
}
在上面的示例中,我們使用ThreadPool.QueueUserWorkItem方法將10個工作項添加到線程池隊列中。每個工作項都是一個代表工作編號的整數,表示工作的編號。在DoWork方法中,我們模擬了一個長時間運行的工作,然后在完成后打印工作完成的消息。
請注意,ThreadPool.QueueUserWorkItem方法將工作項添加到線程池中,線程池會自動為工作項分配可用的線程來執行。在工作項完成后,線程將返回到線程池中以供重用。