91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

線程池ThreadPool中QueueUserWorkItem怎么使用

小億
221
2023-11-15 13:15:17
欄目: 編程語言

QueueUserWorkItem 方法可以將工作項添加到線程池隊列中,并由線程池中的一個線程執行。它接受一個 WaitCallback 委托作為參數,該委托定義了要執行的工作項的方法。

以下是使用 QueueUserWorkItem 方法的示例代碼:

using System;
using System.Threading;

public class Program
{
    public static void Main()
    {
        // 創建線程池
        ThreadPool.SetMinThreads(2, 2);
        ThreadPool.SetMaxThreads(10, 10);

        // 添加工作項到線程池隊列中
        ThreadPool.QueueUserWorkItem(DoWork, "WorkItem 1");
        ThreadPool.QueueUserWorkItem(DoWork, "WorkItem 2");
        ThreadPool.QueueUserWorkItem(DoWork, "WorkItem 3");

        // 等待工作項完成
        Thread.Sleep(1000);
    }

    private static void DoWork(object workItem)
    {
        Console.WriteLine($"Executing work item: {workItem}");

        // 模擬工作項的執行
        Thread.Sleep(1000);

        Console.WriteLine($"Finished work item: {workItem}");
    }
}

在上面的示例中,我們首先使用 SetMinThreadsSetMaxThreads 方法設置線程池的最小和最大線程數。然后,我們使用 QueueUserWorkItem 方法將三個工作項添加到線程池隊列中。每個工作項都由線程池中的一個線程執行,執行的方法是 DoWork 方法。最后,我們使用 Thread.Sleep 方法等待所有工作項完成。

當運行上面的代碼時,你將看到類似以下輸出:

Executing work item: WorkItem 1
Executing work item: WorkItem 2
Finished work item: WorkItem 1
Executing work item: WorkItem 3
Finished work item: WorkItem 2
Finished work item: WorkItem 3

注意,線程池是一個共享資源,所以當其它代碼也在使用線程池時,線程池的實際行為可能會有所不同。

0
荣成市| 溧阳市| 宿州市| 炉霍县| 阿克| 台东市| 乐至县| 大冶市| 桦甸市| 新密市| 进贤县| 清水县| 明光市| 上犹县| 宁化县| 济南市| 云龙县| 石家庄市| 淄博市| 武胜县| 赫章县| 上栗县| 临安市| 额尔古纳市| 房山区| 平远县| 姜堰市| 乳源| 商南县| 东方市| 衡山县| 镇宁| 陇川县| 道孚县| 三门峡市| 仙游县| 元朗区| 广灵县| 兴仁县| 金坛市| 吉木萨尔县|