02 2020 档案
摘要:>>返回《C# 并发编程》 1. 简介 2. 异步下的共享变量 3. 解析 AsyncLocal 3.1. IAsyncLocalValueMap 的实现 3.2. 结论 1. 简介 普通共享变量: 在某个类上用静态属性的方式即可。 多线程共享变量 希望能将这个变量的共享范围缩小到单个线程内 无关系
阅读全文
摘要:>>返回《C# 并发编程》 1. 简介 2. 同步异步对比 3. 上下文的捕获和恢复 4. Flowing ExecutionContext vs Using SynchronizationContext 5. 如何适用于 async/await 5.1. 实现方式 5.1.1. Execution
阅读全文
摘要:>>返回《C# 并发编程》 1. 初始化共享资源 2. Rx延迟求值 3. 异步数据绑定 4. 异步构造 5. 异步属性 1. 初始化共享资源 不管同时有多少线程调用 GetSharedIntegerAsync ,这个工厂委托只会运行一次,并且所有线程都等待同一个实例。 实例在创建后会被缓存起来,以
阅读全文
摘要:>>返回《C# 并发编程》 1. 调度到线程池 2. 任务调度器 2.1. Default 调度器 2.2. 捕获当前同步上下文 调度器 2.3. ConcurrentExclusiveSchedulerPair 调度器 3. 调度并行代码 4. 用调度器实现数据流的同步 1. 调度到线程池 Tas
阅读全文
摘要:>>返回《C# 并发编程》 1. 阻塞锁 2. 异步锁 3. 阻塞信号 4. 异步信号 5. 限流 同步的类型主要有两种: 通信和数据保护。 1. 阻塞锁 class LockClass { // 这个锁会保护 _value。 private readonly object _mutex = new
阅读全文
摘要:>>返回《C# 并发编程》 1. 取消请求 2. 超时后取消 3. 取消并行 4. 取消响应式代码 5. 与其他取消体系的互操作 CancellationToken.None 是一个等同于默认的特殊值,表示这个方法是永远不会被取消的。 实例代码 static async Task Cancelabl
阅读全文
摘要:>>返回《C# 并发编程》 1. 简介 2. 不可变栈和队列 3. 不可变列表 4. 不可变Set集合 5. 不可变字典 6. 线程安全字典 7. 阻塞队列 8. 阻塞栈和包 9. 异步队列 10. 异步栈和包 11. 阻塞/异步队列 1. 简介 不可变集合 不可变集合之间通常共享了大部分存储空间,
阅读全文
摘要:>>返回《C# 并发编程》 1. 用 async 代码封装异步方法与 Completed 事件 2. 用 async 代码封装 Begin/End 方法 3. 用 async 代码封装并行代码 4. 用 async 代码封装 Rx Observable 对象 5. 用 Rx Observable 对
阅读全文