線程池ThreadPool中的QueueUserWorkItem方法用于將要執行的工作項目添加到線程池的工作隊列中,并由線程池中的線程來執行。
使用QueueUserWorkItem方法的一般步驟如下:
下面是一個示例代碼:
using System;
using System.Threading;
public class Program
{
public static void Main()
{
// 創建一個委托,用于執行具體的工作
WaitCallback workItem = new WaitCallback(DoWork);
// 將工作項目添加到線程池的工作隊列中
ThreadPool.QueueUserWorkItem(workItem, "Hello, ThreadPool!");
Console.WriteLine("Main thread is doing some other work...");
// 等待一段時間,以便觀察到工作項目的執行結果
Thread.Sleep(2000);
}
private static void DoWork(object state)
{
// 執行具體的工作
string message = (string)state;
Console.WriteLine("DoWork method is processing: " + message);
}
}
在上面的示例中,我們創建了一個委托WaitCallback
,并將其作為參數傳遞給ThreadPool.QueueUserWorkItem
方法。然后,在DoWork
方法中,我們執行了具體的工作。
當運行這個示例時,你將看到主線程先打印出"Main thread is doing some other work…"這句話,然后才會打印出"DoWork method is processing: Hello, ThreadPool!"這句話。這是因為工作項目是由線程池中的線程來執行的,而不是由主線程來執行的。