c#
1 | https: //docs.microsoft.com/zh-cn/dotnet/standard/collections/thread-safe/blockingcollection-overview<br><br><strong>BlockingCollection 概述</strong> |
BlockingCollection<T> 是一个线程安全集合类,可提供以下功能:
-
实现制造者-使用者模式。
-
通过多线程并发添加和获取项。
-
可选最大容量。
-
集合为空或已满时通过插入和移除操作进行阻塞。
-
插入和移除“尝试”操作不发生阻塞,或在指定时间段内发生阻塞。
-
封装实现 IProducerConsumerCollection<T> 的任何集合类型
-
使用取消标记执行取消操作。
-
支持使用
foreach
(在 Visual Basic 中,使用For Each
)的两种枚举:-
只读枚举。
-
在枚举项时将项移除的枚举。
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public class BlockingTest { BlockingCollection< int > bc = new BlockingCollection< int >(); public BlockingTest() { Task.Factory.StartNew(ProduceTask); // Task.Factory.StartNew(ConsumeTask); } private void ProduceTask() { foreach ( var item in Enumerable.Range(1, 100)) { bc.Add(item); Console.WriteLine( string .Format( "+++++++++++++: {0}" , item) + " total:" + bc.Count); Thread.Sleep(100); } bc.CompleteAdding(); } private void ConsumeTask() { foreach ( var item in bc.GetConsumingEnumerable()) { Console.WriteLine( string .Format( "---------------: {0}" , item)+ " total:" + bc.Count); } } } |
fffffffffffffffff
test red font.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Huawei LiteOS基于Cortex-M4 GD32F4平台移植
· mysql8.0无备份通过idb文件恢复数据过程、idb文件修复和tablespace id不一致处
2018-07-19 c# update check