Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 线程池

作者:′残花败落°   发布日期:2025-07-02   浏览:41

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        // 创建一个包含 10 个任务的线程池
        for (int i = 0; i < 10; i++)
        {
            int taskNumber = i;
            ThreadPool.QueueUserWorkItem(o => PerformTask(taskNumber));
        }

        // 等待所有任务完成(这里简单地让主线程等待一段时间)
        Thread.Sleep(5000);

        Console.WriteLine("所有任务已完成。");
    }

    static void PerformTask(int taskNumber)
    {
        Console.WriteLine($"正在执行任务 {taskNumber},线程 ID: {Thread.CurrentThread.ManagedThreadId}");
        // 模拟任务处理时间
        Thread.Sleep(1000);
        Console.WriteLine($"任务 {taskNumber} 完成。");
    }
}

解释说明

  1. ThreadPool.QueueUserWorkItem: 这是将工作项添加到线程池中的方法。它接受一个 WaitCallback 委托,该委托指向要在线程池中执行的方法。
  2. PerformTask 方法: 这是一个简单的任务方法,它接收一个任务编号作为参数,并打印当前任务的信息和线程 ID。然后它模拟任务处理时间,使用 Thread.Sleep(1000) 让线程休眠一秒。
  3. Main 方法: 在主方法中,我们创建了 10 个任务并将其添加到线程池中。为了确保主线程不会立即退出,我们让主线程休眠 5 秒钟,以便所有任务有足够的时间完成。

通过这种方式,我们可以利用线程池有效地管理多个任务的并发执行,而无需手动创建和管理线程。

上一篇:c# 绝对值

下一篇:c# stringbuilder

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c#高并发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站