排序
gRPC入门学习之旅(七),gRPC入门学习之旅(三),gRPC入门学习之旅(四),gRPC入门学习之旅(五),gRPC入门学习之旅(六)
gRPC入门学习之旅(七),gRPC入门学习之旅(三),gRPC入门学习之旅(四),gRPC入门学习之旅(五),gRPC入门学习之旅(六),gRPC入门学习之旅(一) gRPC入门学习之旅(二) gRPC入门学习之旅(...
LoggerMessageAttribute 高性能的日志记录
LoggerMessageAttribute 高性能的日志记录,.NET 6 引入了 LoggerMessageAttribute 类型。 使用时,它会以source-generators的方式生成高性能的日志记录 API。 source-generators可在编译代码时...
由C#委托回调想到的二三事
由C#委托回调想到的二三事,写在前面: 之前的过开发程中,我愈发觉得面对复杂的界面要求,最好还是用UserControl将不同模块的界面设计单独封装,以应对客户频繁地需求更改。这样做能够在面对对...
【OpenCV】在MacOS上使用OpenCvSharp
【OpenCV】在MacOS上使用OpenCvSharp, 前言 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,...
Visual Studio 2026 上手体验,AI 懂你、界面清爽、协作无缝
Visual Studio 2026 上手体验,AI 懂你、界面清爽、协作无缝,前言 微软正式发布的 Visual Studio 2026,确实不只是换个界面、加几个功能那么简单。更像是一个懂大家习惯、预判大家需求、还能帮...
AOT漫谈专题(第五篇): 如何劫持.NET AOT编译器 进行源码级调试
AOT漫谈专题(第五篇): 如何劫持.NET AOT编译器 进行源码级调试,一:背景 1. 讲故事 上篇聊到了 C#程序编译成Native代码 的宏观过程,有粉丝朋友提了一个问题,能不能在 dotnet publish 发布的过...
并发编程 – 线程同步(六)之锁lock
并发编程 - 线程同步(六)之锁lock,通过前面对Interlocked类的学习,相信大家对线程同步机制有了更深的理解,今天我们将继续需要另一种同步机制——锁lock。 lock是C#语言中的关键字,是线程同...
WPF自定义Panel:让拖拽变得更简单
WPF自定义Panel:让拖拽变得更简单, 在 WPF 应用程序中,拖放操作是实现用户交互的重要组成部分。通过拖放操作,用户可以轻松地将数据从一个位置移动到另一个位置,或者将控件...
不可不知的WPF动画(Animation)
不可不知的WPF动画(Animation),在WPF开发应用中,动画不仅可以引起用户的注意与兴趣,而且还使软件更加便于使用。前面几篇文章讲解了画笔(Brush),形状(Shape),几何图形(Geometry),变...
C#使用log4net和sqlite数据库记录日志
C#使用log4net和sqlite数据库记录日志,1 安装包 两个包: log4net System.Data.SQLite 第二个包也可以使用Microsoft.Data.Sqlite,查到的资料显示如果环境使用的是 .NET Core 或 .NET 5+,则建...
国产化PDF处理控件Spire.PDF教程:C#中轻松修改 PDF 文档内容
国产化PDF处理控件Spire.PDF教程:C#中轻松修改 PDF 文档内容, PDF(可移植文档格式)因其在跨平台环境下保持一致的布局和格式而被广泛用于文档共享、分发和存档。在PDF 文档开发过程中,开发者...
第25篇 RabbitMQ在.net core中的应用
第25篇 RabbitMQ在.net core中的应用,RabbitMQ 是一个可靠且成熟的消息传递和流代理,它很容易部署在云环境、内部部署和本地机器上。它目前被全世界数百万人使用。 1.基本概念 生产者(Producer...













