1 2 3 4 5 ··· 7 下一页
摘要: 1 阅读全文
posted @ 2026-01-30 22:54 Rick Carter 阅读(1) 评论(0) 推荐(0)
摘要: 缓存通常用于提高数据访问的效率。一般来说,缓存读取和写入的逻辑遵循“先从缓存取,取不到再从数据库获取并写回缓存”的原则。为了避免多个线程同时修改缓存数据,我们需要加锁来保证数据一致性。 逻辑概述 读取缓存:缓存命中直接返回。 缓存未命中:加锁,然后再次读取缓存,缓存命中直接返回。 缓存还是未命中:执 阅读全文
posted @ 2026-01-30 22:26 Rick Carter 阅读(3) 评论(0) 推荐(0)
摘要: 一般情况下我们业务代码不需要自己捕获异常,因为目前我们常用框架都会自行处理异常,但是有些情况下需要自己处理异常,否则未处理的异常抛出会导致程序崩溃退出。 1.全局异常捕获 // 1. AppDomain 未处理异常 AppDomain.CurrentDomain.UnhandledException 阅读全文
posted @ 2025-12-18 21:29 Rick Carter 阅读(189) 评论(1) 推荐(1)
摘要: 继续写点基础的东西,因为基础的东西能带新手入门,入门后的事情其实是比较简单的。 我们开发dotnet程序后运行时经常出问题,比如cpu高、内存高、崩溃等问题,分析的方法就是使用dotnet的那套分析工具,今天以dotnet-dump为例,简单说下从安装到收集的操作步骤。 1.安装SDK dotnet 阅读全文
posted @ 2025-11-30 00:05 Rick Carter 阅读(212) 评论(0) 推荐(1)
摘要: dotnet10发布了,ef10也快发布了,但是还是只有批量更新(ExecuteUpdateAsync)和批量删除(ExecuteDeleteAsync)功能,没有批量插入。 今天给个办法,在不引用第三方库的情况下,巧妙利用ToQueryString()实现批插。 道理很简单,就是用efcore的T 阅读全文
posted @ 2025-11-15 18:07 Rick Carter 阅读(135) 评论(1) 推荐(2)
摘要: dm库相比其他库本身缺少一些语法差异,也可以说是缺陷。 比如: 0和1无法直接在sql中当作真假值用,where 0这种写法不支持,报错:查询使用值表达式作为过滤条件; t.field is null 也无法直接作为select项; 不支持OUTER APPLY等SQL语法; 以及数据库函数中的又只 阅读全文
posted @ 2025-11-08 21:53 Rick Carter 阅读(93) 评论(0) 推荐(1)
摘要: 1.性能问题-批量多次读写、序列化和反序列化的场景 注意看到dotnet下的IDistributedCache接口内部方法声明都是针对单个key的,当需要多次大量读写同一类型kv值时,存在多次连接redis的情况,导致性能特别慢。 在abp框架中AbpRedisCache有些SetMany和GetM 阅读全文
posted @ 2025-11-01 21:36 Rick Carter 阅读(178) 评论(1) 推荐(1)
摘要: 需求:在多个方法前后输出日志 logger.Info("begin"); method(); logger.Info("end"); 如果需要在方法后输出日志同时加上时长 logger.Info("begin"); var sw= Stopwatch.StartNew(); method(); sw 阅读全文
posted @ 2025-10-28 20:53 Rick Carter 阅读(28) 评论(1) 推荐(2)
摘要: 这个计算是否准备,或者差不多也行,我理解是差不多的 Process.GetCurrentProcess().WorkingSet64 - Gc.GetGCMemoryInfo().HeapSizeBytes 阅读全文
posted @ 2025-10-16 22:58 Rick Carter 阅读(12) 评论(0) 推荐(0)
摘要: 比较水的文章,非常的基础,就当是记录下吧! 1.关于在集合中搜索带来的性能问题,建议用字典(Dictionary) 很多时候需要在一个集合如List中按唯一键查找某个对象,如果用Where扩展方法或者find等方法,是很慢的,特别是大量这样的查找就特别慢。 如果是对集合中的每个数据都要做点什么,那么 阅读全文
posted @ 2025-10-16 22:58 Rick Carter 阅读(211) 评论(2) 推荐(2)
摘要: 这是很早以前遇到的一个问题,觉得说出来有那么一点意义。 有个树形控件,每行前面都有一个复选框,勾选它需要把下级所有的行也都勾上,下级的每行都勾选时还需要给上级也勾选上,存在多级级联。 就上面的功能,勾选框的change事件里需要给下级的勾选框设置相同的checked,导致下级的change事件触发, 阅读全文
posted @ 2025-05-15 21:12 Rick Carter 阅读(79) 评论(0) 推荐(0)
摘要: 1. 问题 环境是dotnet8及以前的版本,dotnet9+不知道是否还有这个问题(我猜是一样的)。 如下代码,在多播委托await异步执行时,不会等待委托方法执行完成,它们在新的线程中运行。 async Task A() { } async Task B() { } Func<Task> fun 阅读全文
posted @ 2025-04-29 21:01 Rick Carter 阅读(305) 评论(2) 推荐(1)
摘要: 本文基于efcore8.0,参考文档。 假设需要重写efcore或者特定数据库的方法的SQL转换,按上面文档及其示例代码,本例中我们大概就是提供下面几个接口的实现。 IMethodCallTranslator IMethodCallTranslatorPlugin IDbContextOptions 阅读全文
posted @ 2025-04-21 22:51 Rick Carter 阅读(227) 评论(0) 推荐(0)
摘要: C#9.0是2020年发布的,record特性还没用上的可以看过来,一起讨论下。 下面通过一个简单的示例演示record带来的好处。 1. 通过一个示例引出问题 public class Person { public string Name { get; set } ... } public cl 阅读全文
posted @ 2025-03-20 22:30 Rick Carter 阅读(292) 评论(0) 推荐(0)
摘要: 如题,当CultureInfo是俄文(ru-RU)时,浮点数中的点是用逗号表达的,如1.1会显示成1,1,造成很多的麻烦,当然如果全系统中全部采纳逗号作为浮点也没问题,只要用户接受就可以,但有时需要继续用点号,那么解决办法如下。 1. 修改DefaultThreadCurrentCulture 我们 阅读全文
posted @ 2025-01-22 17:07 Rick Carter 阅读(164) 评论(1) 推荐(0)
1 2 3 4 5 ··· 7 下一页