首页
C&C++
C#语言
Java
Python
人工智能
Web前端
数据库
面试笔记
其它
软件推荐
搜索
C# 中的弱事件 — 如何避免令人讨厌的内存泄漏
在 C# 中,事件和事件处理程序历来是对象之间通信的核心。在用户界面基于 WinForms 和 WPF 构建的应用程序中尤其如此。但是,误用事件会出现一个常见问题——内存泄漏!当事件订阅者未正确取消订阅时,就会发生这些泄漏,从而导致保留引用,从而无法释放内存。在 C# 中...
6-5 17:33
779
在 .NET8 中通过 RabbitMQ实现消息队列功能
RabbitMQ 是一个功能强大且广泛使用的开源消息代理,可促进分布式系统之间的通信。它实现了高级消息队列协议 (AMQP),使应用程序能够通过队列发送和接收消息,确保可靠和高效的数据传输。RabbitMQ 支持各种消息传递模式,例如发布/订阅、请求/回复和点对点,使其适用...
6-5 17:19
1042
.NET 中的内存管理和垃圾回收
内存管理和垃圾回收是 .NET 开发的基本方面,对于构建高效且可伸缩的软件应用程序非常重要。在这篇文章中,我们将讨论堆栈和堆内存,探索内存分配机制,并了解 .NET 中的垃圾回收。了解堆栈和堆内存堆栈内存堆栈是用于执行程序代码和存储方法调用帧、局部变量和函数参数...
6-5 17:14
222
.NET core中的筛选器
筛选器是每个 .NET API 的组成部分。在这篇文章中,我旨在深入研究 .NET Core 中可访问的各种类型的筛选器。向 ASP.NET API 发起请求时,您的请求在到达目标控制器之前会经过一系列中间件和过滤器。ASP.NET core MVC 和最小 API近年来,从 ASP.NET MVC 到最小 API 的过...
6-5 16:48
255
深入了解 .NET 8 应用程序的 FluentValidation验证功能
本文将深入探讨如何使用 FluentValidation 在 .NET 应用程序中实现验证。传统上,.NET 应用程序过去常常使用数据批注进行验证,但这种方法曾经存在一些限制,例如模型或 dto 类看起来臃肿、不可扩展、无法控制消息和行为以及测试不灵活。这就是像 FluentValidation 这样...
6-5 16:24
510
ASP.NET Core 中的 URL 重写简介
URL 重写是 Web 开发中用于修改或操作 Web 请求 URL 的强大技术。它允许开发人员创建更用户友好和搜索引擎优化的 URL。在本文中,我们将探讨 ASP.NET Core 上下文中的 URL 重写,这是一个跨平台的高性能框架,用于构建现代、基于云的和连接互联网的应用程序。为什么要重...
6-5 16:18
183
C#/.Net 中的多线程介绍和最佳实践
I/ 引言计算机中的线程 CPU调度程序和时间切片进程和线程并发和并行性异步与多线程在 C 中使用多线程的好处#II 线程 C 语言#线程生命周期创建、启动和暂停线程加入中止中断线程取消:停止线程的更好方法III/ 线程问题死锁和争用条件使用 Join 和 LocksAutoResetEvent线...
6-5 10:55
225
.NET中用于重复数据删除的Redis
Redis 虽然经常被用作缓存存储,但它是一个通用的数据结构服务器,可以高效地处理重复数据删除等任务。在本文中,我们将探讨如何利用 Redis 进行重复数据删除,并通过 C# 示例来说明实际实现方法。什么是重复数据删除?dedupe重复数据删除通常称为 dedupe,是消除重复数...
6-5 10:37
192
C#语言中的Async/await最佳实践
自从 C# 5 中引入 async/await 以来,开发人员之间一直对 async/await 关键字的最佳实践以及幕后实际发生的事情感到困惑。让我们先从基础开始。在 Windows 窗体的早期,UI 延迟与 I/O 操作所花费的时间成正比。这意味着,如果您尝试将数据保存到数据库中,并且数据库调...
6-1 9:40
201
.NET8 身份:注册、登录、电子邮件确认和双因素身份验证 (2FA)
启动一个新项目并从头开始处理身份验证和授权可能会筋疲力尽。它通常涉及创建登录和注册功能,这可能很耗时。管理刷新令牌和实现双因素身份验证等挑战增加了复杂性。值得庆幸的是,随着 .NET 8 的到来,这些任务大大简化,只需要最少的配置。在本文中,我将指导你完成各...
6-1 8:54
436
<<
<
…
43
44
45
46
47
48
49
50
51
52
…
>
>>
阅读排行
深入WPF数据绑定:Converter...
2756
C#异步定时器:精准定期执行...
2752
WPF应用中融入ASP.NET Core...
2081
在C# .NET 8中使用MediatR实...
1833
延迟等待的艺术:C#中Task.D...
1577
.NET Core 中集成Dapper高级...
1508
WPF中轻松生成动态图表:实...
1571
.NET 性能分析:.NET 8 中的...
1436
串口通信利器:RJCP.DLL.Ser...
1460
C#屏幕截图:轻松捕获活动窗...
1447
轻松上传:C#中HTTP POST mu...
1537
C# 中的并发性:使用 Blocki...
1295
精准数字处理:C#中四舍五入...
1614
C#中轻松实现二维码和条形码...
1204
C#串口通讯实战:基础功能及...
1275
解决WPF界面卡死等待问题:...
2276
在 .NET8 中通过 RabbitMQ实...
1042
深入了解SOAPCore:在.NET 6...
1160
ASP.NET 后端开发:全面的路...
1026
WPF中轻松操控GIF动画:WpfA...
1120
实现WPF多语言支持:简单灵...
1080
.NET —ToList 和 ToArray ...
954
.net中OpenCVSharp+Zxing读...
1058
MediatR让进程内通信如此简...
2156
还在到处加异常日志记录?试...
1052
C#中Task.Run怎么用?能解决...
1049
打造真实感十足的速度表盘:...
1020
Microsoft.Extensions.Loggi...
914
.NET 9中ToList 和 ToArray ...
877
解密C#中允许HttpClient使用...
860
掌握System.Text.Json中的多...
945
ASP .NET Core 8+ 中的全局...
812
掌握ImageSharp:图像处理的...
931
WPF神器揭秘:一键截图,轻...
801
轻松实现.NET应用自动更新:...
920
C#文件编码检测:轻松解析文...
807
深入理解WPF中的Dispatcher...
906
C# 中的弱事件 — 如何避免...
779
.NET 中的 UUID 和 ULID:最...
777
ASP.NET Core .NET 8 中间件...
772
解密C# Socket通信:克服粘...
879
FluentFTP实战:轻松操控FTP...
878
WPF魔法:轻松实现依赖注入...
1963
使用OpenXML在.NET 6中导出E...
852
C# .NET 8中的自动映射器Aut...
682
在 ASP.NET Core Web API 中...
668
WPF大展示专业指南:轻松实...
877
WPF开发新境界:MVVM设计模...
773
ZLogger v2 架构:利用 .NET...
636
C# Socket通信:灵活传输DTO...
749