随笔分类 - A c#高级编程
c#高级编程
摘要:概念# 在ASP.NET Core中我们可以使用一种机制来增强启动时的操作,它就是HostingStartup。如何叫"增强"操作,相信了解过AOP概念的同学应该都非常的熟悉。我们常说AOP使用了关注点分离的方式,增强了对现有逻辑的操作。而我们今天要说的HostingStartup就是为了"增强"启
阅读全文
摘要:在面对 生产者-消费者 的场景下, netcore 提供了一个新的命名空间 System.Threading.Channels 来帮助我们更高效的处理此类问题,有了这个 Channels 存在, 生产者 和 消费者 可以各自处理自己的任务而不相互干扰,有利于两方的并发处理,这篇文章我们就来讨论下如何
阅读全文
摘要:ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如: ◆ ThreadPool不支持线程的取消、完成、失败通知等交互性操作; ◆ ThreadPool不支持线程执行的先后次序; //1、创建任务 var t1 = new Task(()
阅读全文
摘要:Monitor.Wait、Monitor.Pulse、Monitor.PulseAll 1.Monitor.Wait方法当线程调用 Wait 时,它释放对象的锁并进入对象的等待队列,对象的就绪队列中的下一个线程(如果有)获取锁并拥有对对象的独占使用。Wait()就是交出锁的使用权,使线程处于阻塞状态
阅读全文
摘要:1、BenchmarkDotNet BenchmarkDotNet可帮助将方法转换为基准、跟踪其性能并共享可重复的测量实验。简而言之,采用BenchmarkDotNet可以对方法或者代码块进行基准测试,可以对代码进行调优,并且对代码进行侵入性很低。可以在同一环境下测试不同的方法性能;可以在不同平台(
阅读全文
摘要:SemaphoreSlim 类 官方描述:对可同时访问资源或资源池的线程数加以限制的 Semaphore 的轻量替代。自我理科:通过SemaphoreSlim可以对并发访问的数量进行控制,以达到具体的业务场景。 // 现在有10个人要过桥 // 但是一座桥上只能承受5个人,再多桥就会塌 public
阅读全文
摘要:什么是特性 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。 自定义属性: 1 // 一个自定义特性 BugFix 被
阅读全文
摘要:委托是什么,委托有什么作用 委托是类型,可以将方法作为变量/参数进行传递; 委托的作用及场景: 1、实现类与类、模块与模块之间进行通信交互,场景:如asp.net core中的中间件及管道处理模型; 2、实现代码重用,场景:将公共代码进行封装,而差异代码交由调用方通过委托来传入; 事件是什么,事件有
阅读全文
摘要:ef core是什么? ef core 是微软推出的orm框架,功能强大,支持Linq及sql语句操作数据库,开发非常方便。 与其他orm框架对比 优点:ef core功能非常强大易用,开发非常快速,比如采用linq操作增、删、改、查,维护数据库的模型-表,数据一致性,数据迁移都非常方便; 缺点:与
阅读全文