C# 实现简单的线程池工具

简介: 使用 `ThreadPool` 管理多线程任务,有效控制并发数量,避免因线程过多导致系统性能下降。通过示例代码演示如何提交任务、跟踪完成状态,并等待所有任务结束,提升资源利用率和程序稳定性。

使用 ThreadPool 执行多线程任务,控制并发数,避免线程过多导致性能下降。

using System.Threading;
public class ThreadPoolDemo
{
    private static int _completedTasks = 0;
    private static readonly ManualResetEvent _resetEvent = new ManualResetEvent(false);
    private const int _taskCount = 10;
    // 任务方法
    private static void TaskMethod(object state)
    {
        int taskId = (int)state;
        Console.WriteLine($"任务 {taskId} 开始执行,线程ID: {Thread.CurrentThread.ManagedThreadId}");
        Thread.Sleep(1000); // 模拟任务耗时
        Console.WriteLine($"任务 {taskId} 执行完成");
        // 任务完成计数
        if (Interlocked.Increment(ref _completedTasks) == _taskCount)
        {
            _resetEvent.Set();
        }
    }
    // 调用示例
    public static void TestThreadPool()
    {
        Console.WriteLine("线程池任务开始");
        // 提交任务到线程池
        for (int i = 0; i < _taskCount; i++)
        {
            ThreadPool.QueueUserWorkItem(TaskMethod, i);
        }
        // 等待所有任务完成
        _resetEvent.WaitOne();
        Console.WriteLine("所有任务执行完毕");
        _resetEvent.Close();
    }
}
相关文章
|
2天前
|
C#
C# 字符串操作:常用方法汇总(含案例)
C# 提供丰富的字符串操作方法,如拼接、截取、替换和判断等。本文通过工具类案例演示如何高效处理字符串,提升开发效率与代码可读性。
|
2天前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
2天前
|
C# UED
C# 制作控制台版验证码认证(核心案例)
验证码用于防止恶意操作,控制台程序通过生成随机字符实现验证功能。用户输入验证码后系统比对,支持多次尝试并提示剩余机会,错误过多则认证失败,确保安全性与用户体验平衡。(236字符)
|
2天前
|
C#
C# 日期时间操作:格式化与计算
DateTime类用于处理日期时间操作,支持格式化输出、加减计算及获取特定日期(如本月第一天)。示例代码展示了常用功能:格式化、计算日期差、增减天数等,便于高效处理时间数据。
|
2天前
|
存储 C#
C# 委托(Delegate):实现方法回调
委托是方法的类型,可引用方法并实现回调机制,常用于异步通知与事件触发。通过定义委托,可将方法作为参数传递,并在任务完成后调用多个回调函数,支持灵活的程序解耦与扩展。
|
2天前
|
C#
C# 枚举(Enum):规范常量定义
枚举用于定义命名常量,提升代码可读性与维护性。示例中定义订单状态枚举,演示赋值、转换、解析及遍历操作,避免使用魔法数字,使逻辑更清晰易懂。
|
2天前
|
JSON C# 数据格式
C# JSON 序列化与反序列化:Newtonsoft.Json 用法
JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。
|
2天前
|
安全 C#
C# 实现简单的日志工具类
这是一个C#文件日志类,支持按日期生成日志文件,提供Info、Warn、Error三种级别记录功能,线程安全且使用简单,适用于各类应用程序的日志记录需求。
|
2天前
|
C#
C# 异步编程:async/await 简化异步操作
`async/await` 是 C# 5.0+ 的异步编程语法糖,简化异步操作(如网络请求、文件读写),避免回调地狱。通过 `async` 标记异步方法,`await` 等待任务完成而不阻塞主线程,提升程序响应性和性能,适用于 I/O 密集型场景。
|
2天前
|
存储 缓存 安全
C# 字典(Dictionary):键值对存储的高效用法
`Dictionary&lt;TKey, TValue&gt;` 是键唯一且支持快速查找(O(1))的键值对集合,适用于存储映射关系。可通过 `Add` 添加、`TryGetValue` 安全获取、`Remove` 删除元素,遍历使用 `foreach`,建议优先使用 `TryGetValue` 提升性能。

热门文章

最新文章