C#怎么使用SemaphoreSlim C#限制并发线程数量方法

admin 百科 12
SemaphoreSlim 是 C# 中专为异步设计的轻量信号量,通过 WaitAsync() 和 Release() 控制并发,需用 try/finally 确保释放,不支持 using,适用于单进程内限流。

C#怎么使用SemaphoreSlim C#限制并发线程数量方法-第1张图片-佛山资讯网

SemaphoreSlim 是 C# 中轻量级的信号量实现,专为异步场景设计,适合控制并发访问资源的线程/任务数量。它比传统的 Semaphore 更高效(不依赖操作系统内核),且原生支持 async/await

初始化并设置最大并发数

构造函数接收两个参数:初始可进入数(通常等于最大并发数)、最大允许数。

  • 比如限制最多 3 个任务同时执行: var semaphore = new SemaphoreSlim(3, 3);
  • 第一个参数是“当前可用许可数”,第二个是“上限”,两者相等表示初始全空闲
  • 若设为 new SemaphoreSlim(0, 3),则初始无人能进入,需手动 Release() 才能开始

在异步方法中安全获取和释放许可

务必用 await WaitAsync() 获取许可,用 Release() 归还(不能用 await ReleaseAsync(),它不存在)。

标签: redis 操作系统 app ai c# 并发访问 .net red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~