The static class constructor cannot have access modifiers, cannot be called externally, and has no parameters; The static class constructor is triggered before creating the first instance or calling the first member; A static class cannot be inherited; On the …

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

静态类的构造函数不能加上访问修饰符,也不能被外界调用,也没有参数; 静态类的构造函数在创建第一个实例或调用第一个成员前触发调用; 静态类不能被继承; 而单例模式的类型,是一个普通的类型,可以被实例化,能够有多个构造函数;能够被继承; [......] 继续阅读

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

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

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

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

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

Besides manually implementing the singleton pattern, you can also use the Lazy generic type to implement the singleton pattern. public sealed class Singleton { private static readonly Lazy<Singleton> lazy = new Lazy<Singleton>(() => new Singleto…

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

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

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

Factory Method and Abstract Factory patterns both avoid direct instantiation of new instances by the caller. Instead, they encapsulate the creation logic within factory code, configuring instances beforehand and allocating them for the caller's use. Original C…

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

工厂模式和抽象工厂模式,都是避免调用者直接 new 一个新的实例,预先将创建逻辑编写在工厂代码中,并且对实例进行和一些配置,然后分配调用者使用。 原有代码: HttpRequest 作用是检查网址是否能够访问以及健康状态。 using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; namespace Children { class Pr…

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

Introduction async await Deriving Knowledge from the Past Creating Asynchronous Tasks Creating Asynchronous Tasks and Returning Task Asynchronous Turning to Synchronous Discussing await Task Discussing async Task<TResult> Synchronous vs Asynchronous? Tas…

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

前言 async await 从以往知识推导 创建异步任务 创建异步任务并返回Task 异步改同步 说说 await Task 说说 async Task<TResult> 同步异步? Task封装异步任务 关于跳到 await 变异步 为什么出现一层层的 await 前言 扯淡了 17 篇,这篇终于开始学习 async 和 await 了,有了前面的基础,来理解 async 和 await 就容易理解多了。 这一篇一定要按照每一个示例,去写代码、执行、输出结果,自己尝试分析思路。 async 微软文档…

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

Introduction This content serves as a brief summary and transition. After reading this, you'll be ready to dive into the learning points of multithreading in C#~. Previously, through 16 articles, we've covered knowledge on multithreading, locks, thread pools, …

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

前言 本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。 前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。 有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些组成;使用了 async/await ,结果比不用更加耗性能了;ASP.NET Core 中的管道,异步,回调这些又是啥? 要搞清楚这些,就要好好了解 Task(任务),先别纠结什么关键字,也不用下别人的项目,然后掉头发…

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

Introduction Nodes Then Parallel Schedule Delay Try it out Sequential Nodes Parallel Tasks Writing Workflows Interface Builder Workflow Builder Dependency Injection Implementing Workflow Parsing Introduction Having learned extensive foundational knowledge abou…

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

前言 节点 Then Parallel Schedule Delay 试用一下 顺序节点 并行任务 编写工作流 接口构建器 工作流构建器 依赖注入 实现工作流解析 前言 前面学习了很多多线程和任务的基础知识,这里要来实践一下啦。通过本篇教程,你可以写出一个简单的工作流引擎。 本篇教程内容完成是基于任务的,只需要看过笔者的三篇关于异步的文章,掌握 C# 基础,即可轻松完成。 C#多线程(13):任务基础① C#多线程(14):任务基础② C#多线程(15):任务基础③ 由于本篇文章编写的工作流程序,主要使用任务,有些…

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

TaskAwaiter Another Method for Continuation Another Way to Create Tasks Implementing a Type that Supports Synchronous and Asynchronous Tasks Task.FromCanceled() How to Internally Cancel a Task Yield Keyword Supplementary Knowledge Points The basics of tasks co…

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

TaskAwaiter 延续的另一种方法 另一种创建任务的方法 实现一个支持同步和异步任务的类型 Task.FromCanceled() 如何在内部取消任务 Yield 关键字 补充知识点 任务基础一共三篇,本篇是第三篇,之后开始学习异步编程、并发、异步I/O的知识。 本篇会继续讲述 Task 的一些 API 和常用的操作。 TaskAwaiter 先说一下 TaskAwaiter,TaskAwaiter 表示等待异步任务完成的对象并为结果提供参数。 Task 有个 GetAwaiter() 方法,会返回TaskA…

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

Judging Task Status On Parent-Child Tasks Combination Tasks/Continuation Tasks Complex Continuation Tasks Parallel (Asynchronous) Task Processing Parallel (Synchronous) Task Processing Parallel Task's Task.WhenAny Parallel Task Status Value Change Issues in Lo…

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

判断任务状态 再说父子任务 组合任务/延续任务 复杂的延续任务 并行(异步)处理任务 并行(同步)处理任务 并行任务的 Task.WhenAny 并行任务状态 循环中值变化问题 定时任务 TaskScheduler 类 上一篇,我们学习了任务的基础,学会多种方式场景任务和执行,异步获取返回结果等。上一篇讲述的知识比较多,这一篇只要是代码实践和示例操作。 判断任务状态 属性 说明 IsCanceled 获取此 Task 实例是否由于被取消的原因而已完成执行。 IsCompleted 获取一个值,它表示是否已完成任务。…

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

Multithreaded Programming Multithreaded Programming Models Exploring Advantages Task Operations Two Ways to Create Tasks Creating Tasks with Task.Run() Cancelling Tasks and Controlling Task Creation Returning Results from Tasks and Asynchronously Obtaining Res…

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

多线程编程 多线程编程模式 探究优点 任务操作 两者创建任务的方式 Task.Run() 创建任务 取消任务和控制任务的创建 任务返回结果以及异步获取返回结果 捕获任务异常 全局捕获任务异常 多线程编程 多线程编程模式 .NET 中,有三种异步编程模式,分别是基于任务的异步模式(TAP)、基于事件的异步模式(EAP)、异步编程模式(APM)。 基于任务的异步模式 (TAP) :.NET 推荐使用的异步编程方法,该模式使用单一方法表示异步操作的开始和完成。包括我们常用的 async 、await 关键字,属于该模式的…

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