首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#中简单线程池的代码

在C#中,简单线程池可以通过使用System.Threading.ThreadPool类来实现。以下是一个简单的示例代码:

代码语言:csharp
复制
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#中的线程池来并行执行多个任务,从而提高程序的性能和响应速度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基础才是重中之重~多线程的代价~我的内存都被吃了!

异步操作是.net4.5推出的新名词,事实上,这东西早就有了,它归根结底是通过线程池来实现的,即将一个大任务分成多个小任何块,每个线程并行处理其中的一个,完成后再把结果告诉主线程,在.net4.5推出后,这种技术得到了封装,让开发人员实现起来更加方便了,但是,并发(导步,多线程)并不是在哪里都适用的,使用不当,可能出现很多严重的后果! 看我的程序,这家伙已经占到了2.6G的内存空间了,很可怕吧! 出现这种问题的原因就是我没有把线程这东西搞清楚,在一个调用密集的环境里,使用了多线程,要知道,这种线程,线程池里

07
领券