溫馨提示×

C# ThreadPool之QueueUserWorkItem怎么用

c#
小億
173
2024-02-28 17:32:16
欄目: 編程語言

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)完成后,線程將返回到線程池中以供重用。

0