自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 21 Task 与 Thread 的区别

特性ThreadTask抽象层次低层次,直接对应 OS 线程高层次,表示异步操作资源使用每个线程独占约 1MB 栈空间共享线程池,资源效率高创建开销高,需要系统调用低,复用线程池线程返回值需要外部变量和同步内置泛型返回值支持异常处理必须在线程内部处理支持异常传播取消机制组合能力复杂,需要手动同步丰富的组合 API状态管理基本的 ThreadState详细的 TaskStatus。

2025-08-27 00:52:26 396

原创 20 使用 Task 的基本语法

简单易用:Task.Run() 提供了最简洁的创建方式类型安全:Task 提供强类型返回值支持状态管理:内置丰富的状态信息和监控能力灵活配置:支持多种创建选项和工厂模式。

2025-08-27 00:38:51 356

原创 19 多线程与异步编程对比

资源效率:Task 使用线程池,资源利用率更高编程模型:Task 提供更高级的抽象和更简洁的 API错误处理:Task 支持异常传播,错误处理更灵活组合能力:Task 支持链式操作和复杂的组合模式。

2025-08-27 00:38:11 451

原创 18 线程中的异常处理

异常隔离: 线程中的异常不会自动传播,需要显式处理全局处理: 设置AppDomain.UnhandledException处理未捕获的异常Task优势: Task提供了比Thread更好的异常处理机制聚合异常: 多任务场景下使用AggregateException处理多个异常重试机制: 对于临时性错误,可以实现自动重试机制异常分类: 区分可重试和不可重试的异常类型监控日志: 建立完善的异常记录和监控机制有助于问题诊断。

2025-08-27 00:37:35 486

原创 17 线程池

资源重用: 线程池通过重用线程减少创建/销毁开销,提高性能自动管理: 系统根据负载自动调整线程池大小工作项队列: 使用FIFO队列管理待执行的任务配置选项: 可以调整最大/最小线程数,但要谨慎设置异常处理: 线程池中的异常需要在任务内部处理性能监控: 监控线程池状态有助于优化应用程序性能使用场景: 适合短时间运行的任务,长时间运行的任务应使用专用线程。

2025-08-27 00:36:42 370

原创 16 取消线程

现代.NET推荐的取消机制,提供协作式取消超时取消: 可以设置自动超时,避免长时间运行的任务组合取消: 可以组合多个取消源,灵活控制取消条件协作式取消: 线程需要主动检查取消标记,不是强制终止资源清理: 取消时要确保正确清理资源,避免内存泄漏异常处理: OperationCanceledException是取消操作的标准异常性能考虑: 适当的取消检查频率平衡响应性和性能。

2025-08-27 00:03:01 270

原创 15 从线程返回结果

共享变量方式: 简单直接,但需要注意线程安全和同步问题回调委托: 提供了更好的封装,支持异步通知机制Task: 现代推荐方式,类型安全,支持异步/等待模式同步原语: ManualResetEvent、CountdownEvent等用于线程间同步并发集合: ConcurrentQueue等提供线程安全的数据交换错误处理: 需要考虑线程执行中的异常处理和结果验证性能考虑: 选择合适的方式平衡代码复杂度和执行效率。

2025-08-26 23:03:13 283

原创 14 让线程等待一段时间

阻塞当前线程指定时间,适用于同步场景: 异步等待,不阻塞线程,适用于异步方法: 主动让出CPU时间片,给其他线程执行机会SpinWait: 忙等待机制,适用于短时间等待,避免线程切换开销可中断等待: 使用ThreadInterruptedException处理等待中断性能考虑: 选择合适的等待方式对应用性能影响很大最佳实践: 在异步环境中优先使用Task.Delay,在同步环境中使用Thread.Sleep。

2025-08-26 22:19:02 411

原创 13 线程的状态

线程状态类型: .NET线程具有多种状态,通过枚举表示状态转换: 线程状态会随着执行过程自动转换,了解转换规律有助于调试IsAlive属性: 提供简单的方式检查线程是否仍在执行状态监控: 在多线程应用中,监控线程状态有助于诊断性能问题和死锁调试价值: 线程状态信息是调试并发应用程序的重要工具注意事项: 线程状态可能快速变化,在检查状态时要考虑并发访问的影响。

2025-08-26 22:16:58 354

原创 12 线程安全

线程安全的核心原则避免数据竞争和竞态条件保证操作的原子性确保内存可见性防止指令重排序实现线程安全的策略不可变对象:最安全的方式同步机制:lock、Monitor、读写锁等原子操作:Interlocked类提供的原子操作并发集合:ConcurrentDictionary、ConcurrentQueue等线程本地存储性能考虑选择合适的同步机制避免过度同步考虑读写比例选择读写锁使用原子操作替代简单锁设计模式单例模式的线程安全实现生产者消费者模式对象池模式缓存模式。

2025-08-26 21:28:17 290

原创 11 线程亲和性

线程亲和性的核心概念将线程绑定到特定CPU核心优化缓存命中率和内存访问提高系统可预测性适用场景高性能计算应用实时系统和游戏多媒体处理高频交易系统设置方法性能考虑合理分配任务到不同核心考虑NUMA架构影响避免核心负载不均衡最佳实践基于性能测试做决定考虑任务特性和依赖关系留出核心给操作系统调度监控和调整策略注意事项不当使用可能降低性能操作系统调度器通常很智能需要考虑系统整体负载跨平台兼容性问题。

2025-08-26 21:20:58 381

原创 10 使用手动重置事件释放多个线程

ManualResetEvent的核心特性手动重置:需要显式调用Reset()广播通知:Set()会释放所有等待的线程状态保持:信号状态会一直保持直到手动重置适用场景启动门控制:所有线程同时开始阶段性同步:等待所有任务完成某个阶段广播通知:一次通知多个等待者初始化完成信号ManualResetEventSlim优势更好的性能支持CancellationToken混合等待模式(先自旋后阻塞)最佳实践使用WaitHandle.WaitAll等待多个事件。

2025-08-26 20:03:29 281

原创 09 使用自动重置事件进行信号通知

AutoResetEvent的核心特性自动重置机制:每次唤醒一个线程后自动重置二进制状态:只有信号和非信号两种状态线程安全:多线程环境下安全使用使用场景生产者消费者通知任务协调和调度流水线处理线程同步点最佳实践总是使用using或显式Dispose释放资源设置合理的超时时间避免无限等待结合其他同步机制实现复杂协调避免在持有锁时调用WaitOne性能考虑AutoResetEvent比ManualResetEvent稍慢频繁的Set/WaitOne操作有性能开销。

2025-08-26 19:44:30 475

原创 08 使用信号量限制线程数量

信号量的核心概念计数器机制控制并发访问数量获取资源时计数器减1,释放时加1计数器为0时后续访问被阻塞SemaphoreSlim:轻量级,仅进程内,支持异步Semaphore:重量级,支持跨进程,仅同步操作最佳实践总是在finally块中释放信号量使用using模式确保资源清理设置合理的超时时间避免死锁和资源泄漏适用场景连接池管理限制并发下载/上传资源配额控制生产者消费者模式性能优化选择合适的信号量类型避免频繁的获取/释放操作合理设置初始计数和最大计数。

2025-08-26 19:39:29 264

原创 07 读写锁

读写锁的优势允许多个读者并发访问写操作时独占访问在读多写少场景下性能显著提升锁的类型和使用最佳实践总是使用try-finally确保锁的释放使用TryEnter方法设置超时合理使用可升级读锁避免死锁保持锁的粒度适当性能考虑读写锁适用于读多写少的场景写操作频繁时性能可能不如简单锁可升级读锁有额外开销注意事项避免锁升级时的死锁正确处理异常以防止锁泄漏使用using语句或Dispose清理资源。

2025-08-26 18:57:04 394

原创 06 使用互斥量在进程间进行同步

Mutex的核心特性跨进程同步能力命名机制支持进程间识别所有权概念确保安全释放系统级资源管理最佳实践总是使用using语句确保资源释放设置合理的超时时间处理AbandonedMutexException考虑安全描述符设置性能考虑Mutex比Lock慢,但功能更强大跨进程同步有额外开销适用于需要跨进程同步的场景错误处理处理超时情况检测和恢复被放弃的互斥量提供备用方案使用场景单实例应用程序进程间资源保护分布式系统协调跨进程临界区保护。

2025-08-26 18:06:52 939

原创 05 使用 Monitor 为锁添加超时功能

避免无限等待防止线程永久阻塞提高系统响应性实现更好的用户体验死锁预防通过超时机制检测潜在死锁允许程序从死锁状态恢复提供错误诊断信息资源竞争处理在高竞争环境下提供替代方案实现优雅降级提高系统整体吞吐量。

2025-08-26 17:03:29 384

原创 04 互斥锁

锁类型性能使用场景特点lock 关键字高一般应用内同步语法简洁,异常安全Monitor高需要超时控制更精细的控制Mutex低跨进程同步系统级,可命名。

2025-08-26 16:56:20 624

原创 03 临界区与原子操作

识别临界区访问共享数据的代码段可能产生数据竞争的区域需要互斥访问的资源操作临界区保护方法使用lock关键字使用Monitor类使用其他同步原语。

2025-08-26 16:39:30 250

原创 02 线程同步

线程同步的必要性防止数据竞争和不一致状态确保内存可见性维护程序的正确性选择合适的同步机制简单场景:使用lock关键字高性能需求:使用原子操作复杂场景:选择专门的同步原语性能考虑原子操作 > 有锁操作 > 无同步(但不安全)锁的粒度要适中,避免过度锁定考虑使用并发集合替代自己实现同步最佳实践优先使用高级同步构造最小化锁的作用域避免死锁:统一锁的获取顺序使用volatile关键字确保内存可见性。

2025-08-26 13:44:17 364

原创 01 线程基础

【代码】01 线程基础。

2025-08-26 13:43:17 226

原创 20 ABP Framework 多语言支持

ABP Framework 基于 ASP.NET Core 本地化基础设施构建,为模块化多语言应用程序引入了额外的抽象概念和约定,支持动态语言选择和模块化资源管理。fill:#333;color:#333;color:#333;fill:none;

2025-08-15 00:26:24 1023

原创 19 ABP Framework 资源文件与结构

资源值中的占位符用于运行时替换,使用大括号和从零开始的索引;资源值还可包含 HTML 标记,用于 Web UI 中实现链接、格式设置和嵌入式图像等功能。ABP 框架采用模块化本地化系统,每个模块或领域拥有独立的资源文件集,且每个文件对应特定语言文化。资源文件以 JSON 格式存储,通常位于模块内的。每个模块的资源目录为每种支持的语言文化包含一个 JSON 文件,文件以文化代码命名(如。ABP 本地化系统在运行时加载资源文件,并通过.NET 本地化抽象提供访问。),便于模块独立管理翻译内容。

2025-08-15 00:17:25 905

原创 19 ABP Framework 本地化系统

ABP Framework 本地化系统基于 ASP.NET Core 本地化功能构建,提供模块化、可扩展的国际化和多语言支持基础设施,核心特点包括 JSON 格式资源文件、模块化资源组织及高级格式化功能。

2025-08-15 00:03:30 2068

原创 18 ABP Framework 模块管理

该页面详细介绍了在 ABP Framework 解决方案中使用 ABP CLI 及相关工具添加、更新和管理模块的方法。模块管理是 ABP 模块化架构的核心,支持可重用业务和基础设施功能的集成。模块通常以 NuGet 和/或 NPM 包的形式分发,有时也以源代码形式提供。

2025-08-14 22:57:57 752

原创 17 ABP Framework 项目模板

ABP Framework 提供多种项目模板,帮助开发者快速构建符合最佳实践的应用程序。主要模板包括标准应用模板(分层架构)、无分层简化模板、可重用模块模板和微服务解决方案模板。通过ABP CLI,开发者可自定义UI框架(MVC/Angular/Blazor)、数据库提供程序(EF Core/MongoDB)、主题及架构选项(分层/独立认证服务)。模板支持不同数据库管理系统和移动应用开发选项,提供灵活的项目初始化配置。Pro版本还包含高级主题和移动应用支持等额外功能。

2025-08-14 22:32:39 678

原创 16 ABP Framework CLI

ABP CLI(Command Line Interface)是 ABP Framework 开发的主要自动化和脚手架工具,通过.NET 全局工具分发,核心功能实现于项目,提供项目创建、模块管理、包更新等开发任务的命令支持。

2025-08-14 22:07:28 1089

原创 15 ABP Framework 开发工具

该页面详细介绍了 ABP Framework 提供的开发工具和命令行界面(CLI),用于创建、管理和定制 ABP 项目。ABP CLI 是主要开发工具,支持项目脚手架、模块添加、数据库迁移管理及常见开发任务自动化。

2025-08-14 21:58:23 897

原创 14 ABP Framework 文档管理

ABP 文档系统是基于Volo.Docs。

2025-08-14 21:10:05 620

原创 13 ABP Framework 权限管理

2025-08-14 17:34:32 553

原创 12 ABP Framework 租户管理

ABP 框架的租户管理系统提供全面的多租户支持,包括租户 CRUD 操作、租户特定功能管理及与权限系统的集成,使 SaaS 应用能为不同客户组织隔离数据和功能。

2025-08-14 15:56:47 1030

原创 11 ABP Framework 身份管理

ABP Framework 的身份管理模块提供了全面的用户和角色管理功能,涵盖用户认证、基于角色的授权以及跨多个 UI 框架(Angular、Blazor 和 MVC)的分层权限管理。该模块遵循 ABP 的模块化架构模式,不同 UI 框架有独立的层,同时共享通用的业务逻辑和数据访问模式。fill:#333;color:#333;color:#333;fill:none;UI Layer。

2025-08-14 15:29:16 809

原创 10 ABP 模块系统

向 ABP 解决方案添加模块涉及几个协调步骤,由 CLI(命令行界面)和类编排。检索模块元数据获取模块信息(NuGet/NPM 包、依赖项、文档链接 )。版本兼容性检查确保模块版本与解决方案的 ABP 版本兼容。添加包引用将所需的 NuGet 和 NPM 包引用添加到相应项目中。(可选)下载源代码如果有要求,将模块的源代码下载到/modules文件夹中。修改解决方案文件如果添加了源代码,更新.sln文件以包含新项目。依赖项和配置调整。

2025-08-13 21:55:08 766

原创 09 ABP Framework 中的 MVC 和 Razor Pages

该页面详细介绍了 ABP Framework 与 ASP.NET Core MVC 和 Razor Pages 的集成,涵盖框架组件、项目模板、主题系统和模块集成模式等内容,提供了 ABP 应用程序中传统的服务器端 Web UI 选项。ABP 提供了多个核心包用于 MVC 和 Razor Pages 集成,以扩展 ASP.NET Core 的功能,主要包括:Volo.Abp.AspNetCore.Mvc.UI.MultiTenancyTenant UI ComponentsVolo.Abp.AspNetCo

2025-08-13 19:44:22 911

原创 08 ABP Framework Blazor UI

ABP Blazor UI 系统构建在 Blazorise 组件库之上,为构建数据驱动应用提供结构化方法,包含 CRUD 操作、主题和本地化的一致模式。fill:#333;color:#333;color:#333;fill:none;模块UI包UI 组件核心框架包托管模型用户/角色管理租户管理权限管理功能管理数据网格组件CRUD基类操作系统扩展框架核心UI框架Web组件基础主题系统服务器端渲染客户端渲染混合渲染。

2025-08-13 17:54:24 853

原创 07 ABP Framework 支持的 UI 框架

ABP 提供三种独立又可组合使用的 UI 框架,它们通过共享后端服务保持功能一致性,满足不同开发偏好和部署场景。fill:#333;color:#333;color:#333;fill:none;WASM Host。

2025-08-13 14:55:24 392

原创 06 ABP Framework 事件总线与分布式事件

创建继承自EventData或实现IEventData继承自EventData的可序列化类,通常使用Etoset;set;

2025-08-13 12:10:16 480

原创 05 ABP Framework 实现数据库集成

ABP 在 Entity Framework Core(EF Core)之上构建数据库集成,提供全面抽象层,支持多种数据库提供程序,同时保持框架内模式一致。核心包ABP 数据库集成架构(mermaid graph):fill:#333;color:#333;color:#333;fill:none;

2025-08-13 00:41:37 670

原创 04 ABP Framework 领域驱动设计(DDD)实现

ABP 框架通过提供实体、聚合根、值对象、仓库、领域服务、规格、应用服务等核心构建块,以及工作单元和领域事件等模式,全面实现了领域驱动设计。这些组件协同工作,帮助开发者构建具有清晰领域模型、封装业务逻辑、松耦合的应用系统。

2025-08-13 00:12:52 400

原创 03 ABP Framework 核心框架(Core Framework)

fill:#333;color:#333;color:#333;fill:none;

2025-08-12 22:34:07 760

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除