C# 线程池运用范例
时间: 2024-02-11 07:02:42 浏览: 21
以下是一个C#线程池的运用范例:
```csharp
using System;
using System.Threading;
public class ThreadPoolExample
{
private static void Task(object state)
{
// 执行任务的代码
Console.WriteLine("Task executed by thread {0}", Thread.CurrentThread.ManagedThreadId);
}
public static void Main()
{
// 创建一个线程池
ThreadPool.SetMinThreads(2, 2);
ThreadPool.SetMaxThreads(4, 4);
// 提交任务到线程池
for (int i = 0; i < 5; i++)
{
ThreadPool.QueueUserWorkItem(Task);
}
// 等待所有任务完成
Thread.Sleep(2000);
// 关闭线程池
ThreadPool.ResetMaxThreads();
ThreadPool.ResetMinThreads();
}
}
```
这个例子展示了如何使用C#线程池。首先,我们通过`ThreadPool.SetMinThreads`和`ThreadPool.SetMaxThreads`方法设置线程池的最小线程数和最大线程数。然后,我们使用`ThreadPool.QueueUserWorkItem`方法将任务提交到线程池中。每个任务都会由线程池中的一个线程执行。最后,我们使用`Thread.Sleep`方法等待所有任务完成,并通过`ThreadPool.ResetMaxThreads`和`ThreadPool.ResetMinThreads`方法关闭线程池。