
.NET杂谈
文章平均质量分 50
靓仔,请留步
这个作者很懒,什么都没留下…
展开
-
WPF的DataGrid渲染性能优化
提高Grid性能的几种方法。原创 2025-02-14 15:31:46 · 167 阅读 · 0 评论 -
高并发架构
高并发(High Concurrency)是指系统能够同时处理很多请求或者任务的能力。在计算机领域,特别是在网络服务、数据库系统、Web应用等领域,高并发是一个重要的性能指标。当一个系统需要处理大量用户的请求时,如果系统能够有效地支持并处理这些请求,就可以说这个系统具有高并发能力。高并发系统通常需要处理大量的并发用户,而不降低系统的性能或导致请求的延迟。以双十一举例,某宝上有双凉鞋,因物美价廉大受欢迎,所以有一千万人在十分钟内竞相购买。换句话说,系统服务在十分钟内承受了一千万次访问。这便是高并发场景。原创 2023-11-23 11:06:50 · 737 阅读 · 0 评论 -
wpf杂谈
WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) - walterlv。WPF内存优化,防止内存泄漏 | 码客说。原创 2024-11-13 09:57:54 · 151 阅读 · 0 评论 -
上位机通讯协议之大端小端
可从上述所说看出,有大端小端区分的,最小也是一个字,即16位,两个byte(可组成一个字节数组)。最低字节(低位字节)是:F0 11110000 在字节数组索引【0】位置上。最高字节(高位字节)是:C0 11000000 在字节数组索引【0】位置上。大端模式,也被称为高位模式:最高字节数据存储在内存的最低地址处,最低字节数据存储在内存的最高地址处。小端模式,也被称为低位模式:最低字节数据存储在内存的最低地址处,最高字节数据存储在内存的最高地址处。原创 2024-09-22 19:21:10 · 313 阅读 · 0 评论 -
WPF布局控件
可自定义行和列来处理。原创 2023-12-13 14:40:32 · 87 阅读 · 1 评论 -
上位机通信组件-2
丢包情况一般是网络通讯不稳定,或者数据缓冲区读取的字节数量不对造成的。前一种情况可通过心跳检查,断线重连等方案解决。粘包情况:设备发送数据太快,导致上一个包的缓冲区还未清空,下一个包的数据就进入了缓冲区,读取缓冲区时把数据包粘连在一起了。设备会有自己的心跳检查,一般是通过心跳检查去发现是否已断线。这里不多叙述,简单的写一个自己实现的断线检查和重新连接。方法也很简单,和服务端定义一个协议,比如发送时将包的长度,名称,id等一起传送过来,这样接收时,按照协议去解析。比如断线重连,丢包粘包等情况。原创 2023-12-18 15:32:20 · 134 阅读 · 0 评论 -
上位机通信组件-1
上位机通信分为以太网口和串口通信。两者是电脑硬件,以太网就是俗称的网口,串口不知如何形容,大家自行百度。TCP通信,可使用Socket类。一个简单的TCP通信就已经完成了。原创 2023-12-18 14:54:51 · 169 阅读 · 0 评论 -
WPF小技巧
原创 2023-12-13 14:05:10 · 81 阅读 · 1 评论 -
单例模式实现的几种方式
此外,从 C# 5.0 开始,volatile.Read 和 volatile.Write 方法提供了更细粒度的控制,可以对非 volatile 字段执行与 volatile 相同的内存屏障操作。然而,对于大于机器字长的数据类型(例如64位系统上的 long 或 double),即使它们是 volatile 的,也不能保证读写操作的原子性。它确保对字段的读取和写入是原子操作,并且不会被编译器或处理器重新排序,从而避免了某些类型的竞态条件(race conditions)。这保证了程序逻辑的正确性。原创 2025-01-07 11:13:21 · 755 阅读 · 0 评论 -
Visual Studio 高效率
1.开启内联参数提示。2.开启全局智能提示。3.实时显示诊断错误。原创 2023-12-16 19:16:16 · 178 阅读 · 0 评论 -
随笔:==和Equals比较
object.ReferenceEquals:比较两者的堆栈引用。原创 2024-09-18 09:36:57 · 239 阅读 · 0 评论 -
现代化开发为什么不推荐使用存储过程
存储过程在数据库中扮演着非常重要的角色,但技术推陈出新,业务发展多态化,已经有更多的新技术方案可替代存储过程适应现代化开发。1.我们现在用的数据库,不是最终确定的数据库。在高并发环境下,这种锁定机制可能导致阻塞,即一个存储过程正在执行时,其他进程可能需要等待锁释放才能继续,这会影响系统的吞吐量。例如,如果存储过程中有复杂的事务逻辑或大量数据返回给客户端,那么可能会消耗较多的数据库资源,影响整体性能。:存储过程通常在数据库服务器上执行,如果并发请求量过大,可能会超过单个数据库服务器的能力,导致性能瓶颈。原创 2024-09-02 09:54:41 · 1491 阅读 · 0 评论 -
string特殊的引用类型
可先提前理解C#中的堆栈概念,这是本人在csdn上找到的一篇文章深入理解C#中的堆(Heap)与栈(Stack),一次性全都掌握!_c# 堆栈-优快云博客引用类型可通过修改副本值从而改变源数据的值,亦可修改源值改变副本值,如下图所示。但在C#中,string虽然也是引用类型,但其稍微有些特殊。通过以上示例看出,无论是源值还是副本值,修改后,引用已经悄然变化。为什么会出现以上情况呢,通过反汇编则可知晓答案。(着重看箭头指向)原创 2024-08-12 14:28:18 · 449 阅读 · 0 评论 -
Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。——网关篇
微服务的应用可能是部署在不同机房、不同地区、不同域名下的。此时客户端想要请求对应的服务,都需要知道机器的具体IP或域名;当微服务实例众多时,对客户端来说就难以维护。此时就有了网关,客户端相关的请求直接发送到网关,由网关根据请求标识解析判断出具体的微服务网址,再把请求发送到服务实例上。原创 2023-11-22 13:11:52 · 563 阅读 · 2 评论 -
Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。
Wing致力于打造一个功能强大、最接地气的.NET微服务框架,支持运行平台。支持Consul服务注册与发现,服务间通讯支持http和grpc调用,内置负载均衡器。支持Saga分布式事务,支持三种恢复策略:向前恢复、向后恢复、先前再后。自带配置中心,服务配置可以在线集中统一管理。支持http/grpc/sql(支持ORM框架EFCore/FreeSql/SqlSugar)链路追踪及耗时分析统计。内置服务网关,支持全局服务策略和个性化服务策略配置。支持RabbitMQ事件总线,自带友好操作的可视化UI管理界面。原创 2023-11-11 15:57:10 · 530 阅读 · 0 评论 -
Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。——网关策略篇
当电路中的负载过高的时候,“保险丝”就会熔断。微服务的熔断就如同保险丝一样,当服务间的调用出现频繁的超时,核心服务却一直在等待这个超时服务的响应结果,后果就是整个系统服务的卡顿、无反应,这对于用户端是不可接受的。所以熔断就是某个服务发生不断的调用响应超时的时候,就屏蔽掉这个服务,短路这个服务,不调用这个服务的具体内容直接返回一个默认值,对服务进行降级处理。在appsettings中配置以下策略,并将Test控制器中的Get方法设置等待2*60*1000,重启网关和Service1服务。// 全局策略。原创 2023-11-22 15:13:33 · 1143 阅读 · 0 评论 -
自动实现的属性字段
使用lamda表达式方式初始化时,要注意初始化的值是非实例化,非动态的。不然会重新分配内存,改变引用。2.如果涉及到实例化,=> lamda表达式赋值方式会重新分配内存,改变属性的引用。3.如果涉及到动态值,=> lamda表达式赋值方式会重新分配内存,改变属性的引用。但需要注意的是,Message赋值的方法容易重新分配内存。1.如果不涉及到实例化或者值变动,两种方法都不会重新分配内存。C#常用的两种给属性或者字段赋初始值方法。原创 2024-08-09 21:34:03 · 170 阅读 · 1 评论