System.Threading.ThreadPool.QueueUserWorkItem 是 C# 中用于将任务异步提交到线程池执行的方法。线程池是 .NET 提供的一个管理线程的机制,它可以有效地复用线程,避免频繁创建和销毁线程的开销。
方法说明
QueueUserWorkItem 方法有两个重载版本:
QueueUserWorkItem(WaitCallback callBack)
将任务提交到线程池,任务由 WaitCallback 委托表示。
QueueUserWorkItem(WaitCallback callBack, object? state)
将任务提交到线程池,并允许传递一个状态对象(state)作为参数。
参数
callBack:一个 WaitCallback 委托,表示要执行的任务。它的签名是:
public delegate void WaitCallback(object? state);
其中 state 是传递给任务的可选参数。
state:一个可选的对象,作为参数传递给 callBack 委托。如果不需要传递参数,可以设置为 null。
使用场景
QueueUserWorkItem 适用于需要异步执行一些短时间任务的场景。由于线程池会管理线程的复用,因此它比手动创建线程更高效。
示例代码
以下是一个简单的示例,展示如何使用 QueueUserWorkItem:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{