1,可用版本与参考资料 2,ValueTask<TResult> 和 Task 3,编译器如何编译 4,ValueTask 有什么优势 5,ValueTask 创建异步任务 6,IValueTaskSource 和自定义包装 ValueTask 关于 IValueTaskSource[......] 继续阅读

2020年12月3日 10条评论 6222点热度 0人点赞 痴者工良 阅读全文

C++ 中有个内联函数,使用 inline 来修饰函数,编译器就会对其进行优化,将此函数作为代码判断插入到调用处。 摘自 C语言中文网 函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继[......] 继续阅读

2020年7月7日 3条评论 10912点热度 4人点赞 痴者工良 阅读全文

构建代码 1,程序集(Assembly) 2,模块(Module) 3,类型(Type) 4,DynamicMethod 定义方法与添加 IL [......] 继续阅读

2020年6月11日 0条评论 2801点热度 1人点赞 痴者工良 阅读全文

// 二进制位数长度 private int binaryLength = 16; // 将数字转为 N 位二进制,并且前面补足 0 private byte[] ToBinary(int num) {[......]继续阅读

2020年5月10日 0条评论 2970点热度 1人点赞 痴者工良 阅读全文

假设有一段代码原本在 Windows 上运行,继承了接口 IDo,但是现在要迁移到 Linux 运行,可是某些地方不兼容,而同事已经将代码写好了,但是没有继承在 Windows 下运行的 IDo 接口,又不能改动以前的代码,必须保证都兼容。 原代码如下: // 只接受 Ido 的类型[......]继续阅读

2020年5月7日 1条评论 3078点热度 0人点赞 痴者工良 阅读全文

除了手动实现单例模式,也可以使用 Lazy 泛型实现单例模式。 public sealed class Singleton { private static readonly Lazy lazy = new Lazy(() => new Singleton());[......]继续阅读

2020年5月7日 0条评论 3905点热度 0人点赞 痴者工良 阅读全文

前言 async await 从以往知识推导 创建异步任务 创建异步任务并返回Task 异步改同步 说说 await Task 说说 async Task<TResult> 同步异步? Task封装异步任务 关于跳到 await 变异步 为什么出现一层层的 await 前言 [......] 继续阅读

2020年5月3日 0条评论 3424点热度 1人点赞 痴者工良 阅读全文

前言 本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。 前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。 有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些[......] 继续阅读

2020年5月3日 0条评论 2568点热度 0人点赞 痴者工良 阅读全文

前言 节点 Then Parallel Schedule Delay 试用一下 顺序节点 并行任务 编写工作流 接口构建器 工作流构建器 依赖注入 实现工作流解析 前言 前面学习了很多多线程和任务的基础知识,这里要来实践一下啦。通过本篇教程,你可以写出一个简单的工作流引擎。 本篇教程[......] 继续阅读

2020年4月30日 0条评论 4637点热度 5人点赞 痴者工良 阅读全文

TaskAwaiter 延续的另一种方法 另一种创建任务的方法 实现一个支持同步和异步任务的类型 Task.FromCanceled() 如何在内部取消任务 Yield 关键字 补充知识点 任务基础一共三篇,本篇是第三篇,之后开始学习异步编程、并发、异步I/O的知识。 本篇会继续讲述 Task[......] 继续阅读

2020年4月29日 3条评论 3057点热度 0人点赞 痴者工良 阅读全文

判断任务状态 再说父子任务 组合任务/延续任务 复杂的延续任务 并行(异步)处理任务 并行(同步)处理任务 并行任务的 Task.WhenAny 并行任务状态 循环中值变化问题 定时任务 TaskScheduler 类 上一篇,我们学习了任务的基础,学会多种方式场景任务和执行,异步获取返回结果等[......] 继续阅读

2020年4月28日 0条评论 3191点热度 0人点赞 痴者工良 阅读全文

多线程编程 多线程编程模式 探究优点 任务操作 两者创建任务的方式 Task.Run() 创建任务 取消任务和控制任务的创建 任务返回结果以及异步获取返回结果 捕获任务异常 全局捕获任务异常 多线程编程 多线程编程模式 .NET 中,有三种异步编程模式,分别是基于任务的异步模式(TAP)[......] 继续阅读

2020年4月28日 0条评论 2687点热度 0人点赞 痴者工良 阅读全文

线程池 ThreadPool 常用属性和方法 线程池说明和示例 线程池线程数 线程池线程数说明 不支持的线程池异步委托 任务取消功能 计时器 线程池 线程池全称为托管线程池,线程池受 .NET 通用语言运行时(CLR)管理,线程的生命周期由 CLR 处理,因此我们可以专注于实现任务,而不需要[......] 继续阅读

2020年4月27日 0条评论 2805点热度 0人点赞 痴者工良 阅读全文

前言 volatile 关键字 三种常用等待 再说自旋和阻塞 SpinWait 结构 属性和方法 自旋示例 新的实现 SpinLock 结构 属性和方法 示例 等待性能对比 前面我们学习了很多用于线程管理的 类型,也学习了多种线程同步的使用方法,这一篇主要讲述线程等待相关的内容。 在[......] 继续阅读

2020年4月26日 0条评论 3043点热度 0人点赞 痴者工良 阅读全文

本篇的内容主要是介绍 ReaderWriterLockSlim 类,来实现多线程下的读写分离。 ReaderWriterLockSlim ReaderWriterLock 类:定义支持单个写线程和多个读线程的锁。 ReaderWriterLockSlim 类:表示用于管理资源访问的锁定状态,可实现多[......] 继续阅读

2020年4月25日 0条评论 2956点热度 2人点赞 痴者工良 阅读全文

前言 这一篇,我们将学习用于实现并行任务、使得多个线程有序同步完成多个阶段的任务。 应用场景主要是控制 N 个线程(可随时增加或减少执行的线程),使得多线程在能够在 M 个阶段中保持同步。 线程工作情况如下: 我们接下来 将学习C# 中的 Barrier ,用于实现并行协同工作。 Barrier[......] 继续阅读

2020年4月25日 0条评论 2595点热度 0人点赞 痴者工良 阅读全文

解决一个问题 CountdownEvent 类 构造函数和方法 示例 解决一个问题 假如,程序需要向一个 Web 发送 5 次请求,受网路波动影响,有一定几率请求失败。如果失败了,就需要重试。 示例代码如下: class Program { private s[......]继续阅读

2020年4月19日 0条评论 2566点热度 0人点赞 痴者工良 阅读全文

区别与示例 ManualResetEvent 类 ManualResetEventSlim 区别与示例 AutoResetEvent 和 ManualResetEvent 十分相似。两者之间的区别,在于前者是自动(Auto),后者是手动(Manua)。 你可以先运行下面的示例,再测试两者的区别。[......] 继续阅读

2020年4月19日 0条评论 2619点热度 0人点赞 痴者工良 阅读全文

AutoRestEvent 类 常用方法 一个简单的示例 解释一下 复杂一点的示例 解释 回顾一下,前面 lock、Monitor 部分我们学习了线程锁,Mutex 部分学习了进程同步,Semaphor 部分学习了资源池限制。 这一篇将学习 C# 中用于发送线程通知的 AutoRestEve[......] 继续阅读

2020年4月19日 0条评论 3092点热度 0人点赞 痴者工良 阅读全文

Semaphore 类 示例 示例说明 信号量 SemaphoreSlim类 示例 区别 两者都可以限制同时访问某一资源或资源池的线程数。 这里先不扯理论,我们从案例入手,通过示例代码,慢慢深入了解。 Semaphore 类 这里,先列出 Semaphore 类常用的 API。 其构造函[......] 继续阅读

2020年4月18日 2条评论 3189点热度 0人点赞 痴者工良 阅读全文
123458