//C#线程池是一种可以重复使用的线程资源,
//可以避免频繁创建和销毁线程的开销,提高程序的性能。
//下面是C#线程池的常用方法和例子:
//1. ThreadPool.QueueUserWorkItem方法:
//将工作项添加到线程池队列中,线程池会自动分配线程来执行工作项。
//csharp
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), data);
//
//2. ThreadPool.SetMaxThreads方法:设置线程池的最大线程数。
//csharp
ThreadPool.SetMaxThreads(100, 100);
//
//3. ThreadPool.SetMinThreads方法:设置线程池的最小线程数。
//csharp
//ThreadPool.SetMinThreads(10, 10);
//
4. ThreadPool.GetMaxThreads方法:获取线程池的最大线程数。
//csharp
int maxThreads, maxIOThreads;
ThreadPool.GetMaxThreads(out maxThreads, out maxIOThreads);
//
//5. ThreadPool.GetMinThreads方法:获取线程池的最小线程数。
//csharp
int minThreads, minIOThreads;
ThreadPool.GetMinThreads(out minThreads, out minIOThreads);
//
//下面是一个使用线程池的例子,该例子使用线程池来计算斐波那契数列的值:
//csharp
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
int n = 10;
ThreadPool.QueueUserWorkItem(new WaitCallback(CalculateFibonacci), n);
Console.ReadLine();
}
static void CalculateFibonacci(object data)
{
int n = (int)data;
int a = 0, b = 1;
for (int i = 0; i < n; i++)
{
int c = a + b;
Console.WriteLine(c);
a = b;
b = c;
Thread.Sleep(1000);
}
}
}
//
//在上面的例子中,我们使用了ThreadPool.QueueUserWorkItem方法
//将CalculateFibonacci方法添加到线程池队列中,线程池会自动分配线程来执行该方法。
//在CalculateFibonacci方法中,我们使用了Thread.Sleep方法来模拟计算斐波那契数列的过程。