C# 线程池

//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方法来模拟计算斐波那契数列的过程。

你可能感兴趣的:(visual,studio,c#,c#,开发语言)