C#中queueuserworkitem怎么使用

小億
146
2023-08-02 23:26:34

在C#中,可以使用QueueUserWorkItem方法來(lái)將方法或委托添加到線程池隊(duì)列中進(jìn)行異步執(zhí)行。下面是使用QueueUserWorkItem方法的示例代碼:

using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
// 將方法添加到線程池隊(duì)列中異步執(zhí)行
ThreadPool.QueueUserWorkItem(DoWork, "Hello, World!");
// 主線程繼續(xù)執(zhí)行其他操作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main thread doing other work.");
Thread.Sleep(1000);
}
Console.ReadLine();
}
static void DoWork(object state)
{
// 從參數(shù)中獲取要執(zhí)行的工作
string message = (string)state;
// 執(zhí)行工作
Console.WriteLine("Doing work: " + message);
Thread.Sleep(3000);
Console.WriteLine("Work completed: " + message);
}
}

在上面的示例中,我們使用QueueUserWorkItem方法將DoWork方法添加到線程池隊(duì)列中異步執(zhí)行。然后,主線程繼續(xù)執(zhí)行其他操作。DoWork方法會(huì)在后臺(tái)線程中執(zhí)行,并輸出一些消息。最后,主線程等待用戶按下Enter鍵以結(jié)束程序。

請(qǐng)注意,盡管QueueUserWorkItem方法非常方便,但在新的代碼中更推薦使用Task類或async/await模式來(lái)進(jìn)行異步編程。

0