ThreadPool.QueueUserWorkItem方法允許您將工作項(xiàng)添加到線程池隊(duì)列中,以便在線程池中的可用線程上執(zhí)行。以下是使用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個(gè)工作項(xiàng)添加到線程池隊(duì)列中。每個(gè)工作項(xiàng)都是一個(gè)代表工作編號的整數(shù),表示工作的編號。在DoWork方法中,我們模擬了一個(gè)長時(shí)間運(yùn)行的工作,然后在完成后打印工作完成的消息。
請注意,ThreadPool.QueueUserWorkItem方法將工作項(xiàng)添加到線程池中,線程池會自動為工作項(xiàng)分配可用的線程來執(zhí)行。在工作項(xiàng)完成后,線程將返回到線程池中以供重用。