在C#中,简单线程池可以通过使用System.Threading.ThreadPool
类来实现。以下是一个简单的示例代码:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 将线程池中的工作线程数设置为4
ThreadPool.SetMinThreads(4, 4);
// 将线程池中的工作线程数设置为20
ThreadPool.SetMaxThreads(20, 20);
// 创建一个任务队列
for (int i = 0; i < 100; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(MyTask), i);
}
Console.ReadLine();
}
static void MyTask(object state)
{
int taskId = (int)state;
Console.WriteLine($"Task {taskId} is running on thread {Thread.CurrentThread.ManagedThreadId}");
Thread.Sleep(1000);
Console.WriteLine($"Task {taskId} is completed");
}
}
在这个示例中,我们首先设置了线程池中的最小和最大工作线程数。然后,我们创建了一个任务队列,其中包含100个任务。每个任务都将在线程池中的一个工作线程上运行。我们使用ThreadPool.QueueUserWorkItem
方法将任务添加到线程池中。最后,我们在控制台上输出了每个任务的运行状态。
这个简单的线程池示例展示了如何使用C#中的线程池来并行执行多个任务,从而提高程序的性能和响应速度。
领取专属 10元无门槛券
手把手带您无忧上云