亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

線程池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
沅陵县| 托克托县| 孟连| 垣曲县| 岢岚县| 扶绥县| 合肥市| 大洼县| 刚察县| 汝阳县| 板桥市| 德清县| 堆龙德庆县| 莆田市| 丁青县| 昆山市| 铜梁县| 白银市| 出国| 庆安县| 如东县| 西平县| 桂阳县| 靖远县| 科技| 互助| 本溪市| 吉林省| 棋牌| 贵定县| 韶山市| 红安县| 莲花县| 阜平县| 松滋市| 定远县| 明星| 大冶市| 陇西县| 太湖县| 开阳县|