随笔分类 - c# 教程
摘要:目录快速开始快速配置怎么发布消息自动发布手动发布普通消费者、动态消费者、事件总线普通消费者模式动态消费者模式事件总线模式广播模式高性能序列化器强一致性事务模式结合 MediatR结合 FastEndpoints其它能力 作者:痴者工良 作者博客地址: https://www.whuanle.cn h
阅读全文
摘要:目录定时任务需求核心逻辑使用 Redis 实现秒级定时任务第一步第二步第三步第四步业务服务实现动态代码第一步第二步第三步第四步第五步最后 定时任务需求 本文示例项目仓库:https://github.com/whuanle/HangfireDemo 主要有两个核心需求: 需要实现秒级定时任务; 开发
阅读全文
摘要:关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.co
阅读全文
摘要:关于从零设计 .NET 开发框架 作者:痴者工良 教程说明: 仓库地址:https://github.com/whuanle/maomi 文档地址:https://maomi.whuanle.cn 作者博客: https://www.whuanle.cn https://www.cnblogs.co
阅读全文
摘要:这里是笔者在开发 MAUI 应用时踩的坑,以及一些笔记的汇总。 不得不说 MAUI 挺垃圾的。 如果不是 Mono 金玉在前,估计社区不会有多少人关注败絮 MAUI。 目前 .NET 已经升级到 7.0,但是 MAUI 还是一如既往的拉跨,如果开发过 MAUI,做过定制,自定义标题栏之类的,便会发现
阅读全文
摘要:在 C# 中使用 Span 和 Memory 编写高性能代码 原作者:Joydip Kanjilal 原文地址:https://www.codemag.com/Article/2207031/Writing-High-Performance-Code-Using-SpanT-and-MemoryT-
阅读全文
摘要:本文主要介绍 C# 命名空间 System.Buffers.Binary 中的一些二进制处理类和 Span 的简单使用方法,这些二进制处理类型是上层应用处理二进制数据的基础,掌握这些类型后,我们可以很容易地处理类型和二进制数据之间的转换以及提高程序性能。 C# 原语类型 按照内存分配来区分,C# 有
阅读全文
摘要:浅入 AutoMapper 在 Nuget 搜索即可安装,目前笔者使用的版本是 10.1.1,AutoMapper 的程序集大约 280KB。 AutoMapper 主要功能是将一个对象的字段的值映射到另一个对象相应的字段中,AutoMapper 大家应该很熟悉,这里就不赘述了。 AutoMappe
阅读全文
摘要:目录: 1,文件操作 2,Debug、Trace类 3,条件编译 4,MethodImpl 特性 5,CLSComplianAttribute 6,必要时自定义类型别名 最近在阅读 .NET Core Runtime 的源码,参考大佬的代码,学习编写技巧和提高代码水平。学习过程中将学习心得和值得应用
阅读全文
摘要:最近 NCC 群里在讨论 ValueTask/ValueTask<TResult>,大帅(Natasha主要开发者)最近执着于搞算法和高性能计算,他这么关注这个东西,说明有搞头,背着他偷偷学一下,免得没话题🤣。 ValueTask/ValueTask<TResult> 出现时间其实比较早的了,之前
阅读全文
摘要:昨天搭建完毕 MongoDB 集群 后,开始计划了解 MongoDB ,并引入使用场景,这里介绍一下学习过程中的一些笔记,帮助读者快速了解 MongoDB 并使用 C# 对其进行编码。 浅入 MongoDB MonogoDB 是什么 MongoDB 是 NoSQL 型数据库,主要特征是存储结构化数据
阅读全文
摘要:安装 MongoDB 安装 MongoDB 网上有很多教程,MongoDB 官方文档:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ 笔者这里简单写一下安装过程,笔者使用 ubuntu 系统。 要按照的目标版本:
阅读全文
摘要:前言 本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。 前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。 有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些
阅读全文
摘要:前言 前面学习了很多多线程和任务的基础知识,这里要来实践一下啦。通过本篇教程,你可以写出一个简单的工作流引擎。 本篇教程内容完成是基于任务的,只需要看过笔者的三篇关于异步的文章,掌握 C# 基础,即可轻松完成。 C#多线程(13):任务基础① C#多线程(14):任务基础② C#多线程(15):任务
阅读全文
摘要:任务基础一共三篇,本篇是第三篇,之后开始学习异步编程、并发、异步I/O的知识。 本篇会继续讲述 Task 的一些 API 和常用的操作。 TaskAwaiter 先说一下 TaskAwaiter,TaskAwaiter 表示等待异步任务完成的对象并为结果提供参数。 Task 有个 GetAwaite
阅读全文
摘要:上一篇,我们学习了任务的基础,学会多种方式场景任务和执行,异步获取返回结果等。上一篇讲述的知识比较多,这一篇只要是代码实践和示例操作。 判断任务状态 属性 说明 IsCanceled 获取此 Task 实例是否由于被取消的原因而已完成执行。 IsCompleted 获取一个值,它表示是否已完成任务。
阅读全文
摘要:多线程编程 多线程编程模式 .NET 中,有三种异步编程模式,分别是基于任务的异步模式(TAP)、基于事件的异步模式(EAP)、异步编程模式(APM)。 基于任务的异步模式 (TAP) :.NET 推荐使用的异步编程方法,该模式使用单一方法表示异步操作的开始和完成。包括我们常用的 async 、aw
阅读全文
摘要:线程池 线程池全称为托管线程池,线程池受 .NET 通用语言运行时(CLR)管理,线程的生命周期由 CLR 处理,因此我们可以专注于实现任务,而不需要理会线程管理。 线程池的应用场景:任务并行库 (TPL)操作、异步 I/O 完成、计时器回调、注册的等待操作、使用委托的异步方法调用和套接字连接。 很
阅读全文
摘要:前面我们学习了很多用于线程管理的 类型,也学习了多种线程同步的使用方法,这一篇主要讲述线程等待相关的内容。 在笔者认真探究多线程前,只会new Thread;锁?Lock;线程等待?Thread.Sleep()。 前面已经探究了创建线程的创建姿势和各种锁的使用,也学习了很多类型,也使用到了很多种等待
阅读全文
摘要:本篇的内容主要是介绍 ReaderWriterLockSlim 类,来实现多线程下的读写分离。 ReaderWriterLockSlim ReaderWriterLock 类:定义支持单个写线程和多个读线程的锁。 ReaderWriterLockSlim 类:表示用于管理资源访问的锁定状态,可实现多
阅读全文

浙公网安备 33010602011771号