1. 核心功能
DelegateSpooler
是一个 异步委托执行管理器,主要职责包括:
-
委托队列管理:通过管道ID(
pipe
)组织待执行的ThreadStart
委托 -
异步任务调度:使用
BeginInvoke
/EndInvoke
实现异步执行 -
执行状态跟踪:监控正在运行的任务(通过
execed
字典) -
线程安全控制:通过锁机制保护共享资源
2. 关键设计解析
(1)双缓冲任务队列
数据结构 | 用途 | 线程安全 |
---|---|---|
List<ThreadStart> delegates |
待执行任务队列 | lock 保护 |
Dictionary<int, KeyValuePair<ThreadStart, IAsyncResult>> execed |
执行中任务记录 | 仅后台线程访问 |
(2)异步执行流程
3)管道(Pipe)机制
-
数字ID标识:每个管道对应一个任务槽位
-
状态查询:
IsPipeExecuting
检查任务是否正在执行 -
动态扩容:
InitQueue
初始化指定数量的管道 <