刷新
.net工作流elsa-调度(安排后台作业)

博主头像 前言 elsa内部很多地方都会用到后台作业,也就是在后台线程中执行一堆任务,这与我们通常理解的后台作业没有区别。 elsa将后台作业也称为调度Schedul,相关功能由Elsa.Scheduling模块提供。 典型的应用是触发器调度和书签调度时会用到后台作业,但后台作业也可以用在其它地方,比如自定义 ...

中间件 vs 过滤器

博主头像 在 ASP.NET Core 中,中间件(Middleware) 和 过滤器(Filters) 是两种不同的机制,用于处理请求和响应的管道。它们的作用和适用场景有所不同,以下是它们的对比和详细说明: 中间件(Middleware) 定义 中间件是 ASP.NET Core 请求处理管道中的组件,用于 ...

了解 ASP.NET Core 中的中间件

博主头像 在 .NET Core 中,中间件(Middleware) 是处理 HTTP 请求和响应的核心组件。它们被组织成一个请求处理管道,每个中间件都可以在请求到达最终处理程序之前或之后执行操作。中间件可以用于实现各种功能,如身份验证、路由、日志记录、异常处理、静态文件服务等。 什么是中间件? 中间件是 H ...

.NetCore依赖注入(DI)之生命周期

博主头像 在 .NET Core 中,依赖注入(Dependency Injection,DI)是一种实现控制反转(Inversion of Control,IoC)的技术,它通过将依赖对象注入到需要它们的对象中,来实现对象之间的解耦。依赖注入的生命周期决定了对象在应用程序中的创建和管理方式。常见的生命周期有 ...

AsyncLocal的妙用

博主头像 AsyncLocal<T>是一个在.NET中用来在同步任务和异步任务中保持全局变量的工具类。 它允许你在不同线程的同一个对象中保留一个特定值,这样你可以在不同的函数和任务中访问这个值。 这是在实现异步任务中维持一致性和优雅性的一种重要手段。 用法 创建一个AsyncLocal实例: 你可以使用Asy ...

.NET 依赖注入中的 Captive Dependency

博主头像 大家好,上一篇我们分析了 .NET 依赖注入的默认行为,其实呢还没完全讲完。今天我先给大家出一道题: public interface IDbContext { } public class SqlServerDbContext : IDbContext { } public class LongT ...

聊一聊 C#异步 任务延续的三种底层玩法

博主头像 一:背景 1. 讲故事 最近聊了不少和异步相关的话题,有点疲倦了,今天再写最后一篇作为近期这类话题的一个封笔吧,下篇继续写我熟悉的 生产故障 系列,突然亲切感油然而生,哈哈,免费给别人看程序故障,是一种积阴德阳善的事情,欲知前世因,今生受者是。欲知来世果,今生做者是。 在任务延续方面,我个人的总结就 ...

Rubyer-WPF:打造优雅、精致的 WPF 用户界面

博主头像 这篇文章可以通过一些结构性的调整和文字优化,使得内容更具吸引力和流畅感。以下是改进后的版本: Rubyer-WPF:打造优雅、精致的 WPF 用户界面 在桌面应用开发领域,WPF(Windows Presentation Foundation)凭借其强大的 UI 设计能力和丰富的功能,始终是开发者们 ...

.NET 窗口置于最顶层

博主头像 本文介绍如何将窗口置于最顶层,以及解决在顶层显示时对锁屏登录界面的影响等问题。用于实现类似Launcher、系统工具等应用需要窗口层级比Windows开始菜单以及置顶任务栏还要高的场景 一般情况下的窗口置顶,可以设置WPF窗口属性Topmost=true 也可以使用WIN32-SetWindowPo ...

在 .NET 中使用 Tesseract 识别图片文字

博主头像 1. 什么是 Tesseract Tesseract 是一个强大的字符识别 (OCR) 工具。它最初由 HP 发布,现在由 Google 和学术社区共同维护和开发。 Tesseract 支持多种语言和格式,能够高效地识别图片中的文字。 2. 如何安装 Tesseract 要在 .NET 项目中使用 ...

WinForm之MDI窗体开发详解

博主头像 在WinForm开发中,如果有多个页面进行展示,通常采用菜单栏+容器布局方式(点击菜单栏,打开新的页面,并在容器中显示)。今天以一个简单的小例子,简述如何通过菜单栏和MDI容器实现页面的布局,仅供学习分享使用,如有不足之处,还请指正。 ...

Easy.Admin:基于 .NET 8 和 Vue3 的后台管理系统,支持多种数据库和服务端渲染(SSR)

博主头像 介绍 Easy.Admin 是一个高效且灵活的后台管理系统,采用了现代化的技术栈,旨在帮助开发者快速搭建高质量的后台管理平台。这个系统不仅支持 .NET 8 后端开发,还结合了 Vue3 和 TypeScript 前端技术,提供了一个功能强大且易于扩展的管理框架。同时,它还支持多种数据库,满足 ...

为什么 .NET8线程池 容易引发线程饥饿

博主头像 一:背景 1. 讲故事 最近时间相对比较宽裕,多写点文章来充实社区吧,这篇文章主要还是来自于最近遇到的几例线程饥饿(Task.Result)引发的一系列的反思和总结,我觉得.NET8容易引发饥饿的原因,更多的在于异步回调之后底层会反复的将结果丢到线程池所致,因为数据进线程池容易,再用线程到池中去捞就 ...

C#笔记(1、钉钉机器人推送帆软报表图片)

博主头像 C#笔记——钉钉机器人推送帆软报表图片(一) 1、前言 ​ 2024年最后一个月,家里多了个小公主,在家休息了一段时间。2025年,休完假上班第一天,领导就说:哎,我看总部那边做了个每日产出的报表推送到钉钉群,来看计划达成率。我们基地这边能不能做啊。我心里默默一想,然后大声一喊能做(内心os:上家公 ...

<1234···50>