摘要: 本文主要讲解.Net基于Thread实现自旋锁的三种方式 ###基于Thread.SpinWait实现自旋锁 实现原理:基于Test--And--Set原子操作实现 使用一个数据表示当前锁是否已经被获取 0表示未被索取,1表示已经获取 获取锁时会将_lock的值设置为1 然后检查修改前的值是否等于0 阅读全文
posted @ 2021-06-15 22:55 初夏的阳光丶 阅读(841) 评论(4) 推荐(3) 编辑
摘要: 本文主要讲解如何设计模式的一些优缺点和适用场景以及一些概念信息 首先我们看一下设计模式的总览 接下来我们开始逐个分析每个设计模式的优缺点和概念 单例模式 概念: 保证一个类仅有一个实例,并提供一个访问它的全局访问 优点: 提供了对唯一实例的受控访问 允许可变数目的实例 避免对共享资源的多重占用 缺点 阅读全文
posted @ 2021-05-23 17:07 初夏的阳光丶 阅读(308) 评论(2) 推荐(1) 编辑
摘要: 本文主要讲解如何通过RabbitMQ实现定时任务(延时队列) 环境准备 需要在MQ中进行安装插件 地址链接 插件介绍地址:https://www.rabbitmq.com/blog/2015/04/16/scheduling-messages-with-rabbitmq/ 使用场景 作为一个新的预支 阅读全文
posted @ 2021-04-26 17:27 初夏的阳光丶 阅读(1550) 评论(1) 推荐(6) 编辑
摘要: 研究AutoMapper源码前,我们先来看一下AutoMapper的作用 官网解释:AutoMapper是一个简单的小程序库,旨在解决看似复杂的问题-摆脱将一个对象映射到另一个对象的代码 解释 首先一个简单的使用AutoMapper方法演示 ar config = new MapperConfigu 阅读全文
posted @ 2021-01-31 18:46 初夏的阳光丶 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 在讨论.Net的依赖注入(DI)之前,我们需要知道我们为什么需要使用依赖注入 依赖反转原理(DIP): DIP允许您将两个类解耦,否则它们会紧密耦合,这有助于提高可重用性和更好的可维护性 DIP介绍: 高级模块不应依赖于低级模块。两者都应依赖抽象。 抽象不应依赖细节。细节应取决于抽象。 下面我们通过 阅读全文
posted @ 2020-11-17 22:50 初夏的阳光丶 阅读(694) 评论(2) 推荐(1) 编辑
摘要: 前因:最近在阅读.net core源码,发现关于Configuration介绍的文档都比较多,但是都比较杂乱,(微软文档太官方),所以写下一些自己的感想 主要通过三种使用情况来介绍 Web应用程序使用 控制台应用程序使用 库类使用 需要注意的点,假如我同时配置多个配置文件,程序使用的是最后加载的配置 阅读全文
posted @ 2020-09-10 17:39 初夏的阳光丶 阅读(629) 评论(0) 推荐(2) 编辑
摘要: 异常信息原因 异常是易于滥用的那些构造之一。这可能包括不应该在应有的情况下引发异常或在没有充分理由的情况下捕获异常。还有一个引发错误异常的问题,它不仅无助于我们,而且会使我们困惑。另一方面,存在正确处理异常的问题。如果使用不当,异常处理会变得更糟。所以,在本文中,我将简单介绍一些有关引发和处理异常的 阅读全文
posted @ 2020-08-06 17:34 初夏的阳光丶 阅读(1525) 评论(4) 推荐(7) 编辑
摘要: 全局错误处理服务端 微软已经实施了Interceptors,它们类似于Filter或Middlewares在ASP.NET MVC的核心或的WebAPI,它们可以用于全局异常处理,日志记录,验证等。 这是服务器端Interceptor自己的实现,Continuation是必须等待的Task,然后,如 阅读全文
posted @ 2020-06-29 22:06 初夏的阳光丶 阅读(2254) 评论(0) 推荐(1) 编辑
摘要: 随着微服务的发展,相信越来越多的.net人员也开始接触GRpc这门技术,大家生成GRpc客户端的方式也各不相同,今天给大家介绍一下依据Proto文件生成Rpc客户端的五种方式 前提:需要安装4个Nuget包 Google.Protobuf、Grpc、GRpc.Net.ClientFactory、GR 阅读全文
posted @ 2020-05-26 16:06 初夏的阳光丶 阅读(1792) 评论(2) 推荐(4) 编辑
摘要: C# 中 异步/等待 模式的出现引入了编写良好且可靠的并行代码的新方法,但是,随着创新不断发生,它也引入了将许多的的新方法。很多时候,当尝试使用 async / await 解决多线程问题时,程序员不仅不解决旧问题,还创建新的问题,当死锁,饥饿和竞争条件仍然存在时,甚至更难找到它们。 所以我只是想在 阅读全文
posted @ 2020-05-25 10:31 初夏的阳光丶 阅读(225) 评论(0) 推荐(0) 编辑