随笔分类 -  01-.NET Core框架 / 01-C#/.NET

摘要:IAsyncEnumerable<T> 是 C# 8.0 引入的一个接口,用于表示可以异步遍历的集合。它允许你在不阻塞主线程的情况下,逐步获取集合中的元素。这在处理大量数据或长时间运行的操作时特别有用,因为它可以提高应用程序的响应性和资源利用率。 基本概念 异步迭代: IAsyncEnumerabl 阅读全文
posted @ 2024-10-28 10:22 .Neterr 阅读(99) 评论(0) 推荐(0) 编辑
摘要:yield 关键字向编译器指示它所在的方法是迭代器块 yield 关键字与 return 关键字结合使用,向枚举器对象提供值。 这是一个返回值,例如,在 foreach 语句的每一次循环中返回的值。 yield 关键字也可与 break 结合使用,表示迭代结束。 例子: yield return < 阅读全文
posted @ 2022-06-19 23:40 .Neterr 阅读(283) 评论(0) 推荐(0) 编辑
摘要:比如压缩流、加密流,这些流不仅有Stream的所有特征,还有自己的个性。它们不仅继承Stream类,还引用Stream类。这些通过"装饰器模式"来实现的流包括:BufferedStream, DeflateStream, GZipStream, CryptoStream, AuthenticateS 阅读全文
posted @ 2022-06-06 21:03 .Neterr 阅读(78) 评论(0) 推荐(0) 编辑
摘要:FileStream FileStream流继承于Stream类,代表一个文件流,使用FileStream类可以对文件进行读取、写入、打开和关闭操作 常用构造函数: public FileStream(string path, FileMode mode, FileAccess access); 参 阅读全文
posted @ 2022-06-05 20:27 .Neterr 阅读(525) 评论(0) 推荐(0) 编辑
摘要:TextReader 抽象类,它是StreamReader的父类, TextReader重要成员 void Close()方法 和上篇Stream一样,TextReader也有Close方法,我们必须牢记,在用完之后应该主动关闭它 void Dispose()方法 释放所有该TextReader 所 阅读全文
posted @ 2022-06-05 09:47 .Neterr 阅读(321) 评论(0) 推荐(0) 编辑
摘要:Stream 代表一个流,抽象类 Stream重要成员 CanRead: 只读属性,判断该流是否能够读取: CanSeek: 只读属性,判断该流是否支持跟踪查找 CanWrite: 只读属性,判断当前流是否可写 Flush()方法 当我们使用流写文件时,数据流会先进入到缓冲区中,而不会立刻写入文件, 阅读全文
posted @ 2022-06-04 19:06 .Neterr 阅读(995) 评论(0) 推荐(0) 编辑
摘要:介绍 可以使用泛型声明的元素:类、接口、方法、委托 泛型出现之前使用object封装不同类型的参数,缺点:装箱拆箱性能差、运行时判断类型(不安全)... 泛型是在编译期间转为实际类型副本,所以性能好,还可以使用约束对泛型进行约束 泛型约束 约束泛型类型必须满足约束。使用泛型约束后,可以像使用约束类型 阅读全文
posted @ 2022-04-11 21:04 .Neterr 阅读(130) 评论(0) 推荐(0) 编辑
摘要:什么是正则表达式 很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的 阅读全文
posted @ 2021-04-17 11:43 .Neterr 阅读(250) 评论(0) 推荐(0) 编辑
摘要:参考: https://www.cnblogs.com/zyh000/p/10253796.html 概念 ADO.NET简单理解就是,微软定义了一堆关于操作数据源的接口和类,是C#语言访问数据源的一种方式,ADO.NET 类位于 System.Data.dll 常用对象 Connection → 阅读全文
posted @ 2021-03-07 03:16 .Neterr 阅读(272) 评论(0) 推荐(0) 编辑
摘要:简介 对象池化技术可以显著地提升性能,尤其是当对象的初始化过程代价较大或者频率较高。 它是一种基于使用预先分配资源集合的性能优化思想,简单说对象池就是对象的容器,当一个对象被激活时,便被从池中取出,当对象被停用时,它又被放回池中。 在一些对性能比较敏感的应用中,我们可以通过对象复用的方式避免垃圾对象 阅读全文
posted @ 2021-01-14 15:45 .Neterr 阅读(440) 评论(0) 推荐(0) 编辑
摘要:参考: https://blog.csdn.net/u010476739/article/details/118339679 https://www.cnblogs.com/wuxiaoqian726/archive/2011/03/19/1988931.html 先说下结论: 如果系统不考虑全球化 阅读全文
posted @ 2020-12-16 19:32 .Neterr 阅读(4374) 评论(0) 推荐(3) 编辑
摘要:接口的默认实现 实现类中可以不实现接口中有默认实现的方法,以下代码不报错 public interface IPerson { void Say() { Console.WriteLine("hello"); } } public class Teacher:IPerson { } 但是不可以通过实 阅读全文
posted @ 2020-12-08 22:34 .Neterr 阅读(214) 评论(0) 推荐(0) 编辑
摘要:今天在工作上遇到这么个需求:需要获取对象上所有属性的值,但并事先并不知道对象的类型。 我的第一反应就是使用反射,但是这个操作会进行多次,大量的反射肯定会有性能影响。虽然对我这个项目无关紧要,但我还是选择了另外一种解决方案:构建表达式树,再生成委托,然后将委托缓存在字典里。代码如下: 首先构建表达式树 阅读全文
posted @ 2020-10-25 17:14 .Neterr 阅读(281) 评论(0) 推荐(0) 编辑
摘要:如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务。 Cron表达式: 计划任务表达式是一个字符串,它又7个子字符串组合而成,这7个子字符串有空格符间隔,分别表示计划任务触发时间的7个部分 第一位 – 触发时间的秒数 第二 阅读全文
posted @ 2020-09-18 10:22 .Neterr 阅读(428) 评论(0) 推荐(0) 编辑
摘要:触发器分为:简单触发器(Simple Trigger)、触发器(Cron Trigger),一个触发器只能绑定一个任务 通用触发器属性: JobKey – 当前触发器绑定任务的唯一标识符 StartTimeUtc – 触发器的生效开始时间 EndTimeUtc – 触发器的生效结束时间 触发器优先级 阅读全文
posted @ 2020-09-17 21:02 .Neterr 阅读(565) 评论(0) 推荐(0) 编辑
摘要:Demo1、可以当做缓存的key使用 当需要一组参数的值作为缓存key,通常会使用如下方式: string keyName = arg1+"_"+arg2+"_"+arg3; 此时可以使用struct作为缓存key,只要struct所有属性相同,就会被认为是相同值。不再需要自己拼接缓存key str 阅读全文
posted @ 2020-09-16 17:03 .Neterr 阅读(270) 评论(1) 推荐(0) 编辑
摘要:Quartz.net: 定时执行框架,几乎可以执行所有触发器类型的定时任务,非常灵活。 基本概念: IScheduler:任务调度器,相当于一个大的容器。调度器通常在应用程序启动时创建,一个应用程序实例通常只需要一个调度器即可。 IJob:工作 Trigger:触发器,job和trigger的关系是 阅读全文
posted @ 2020-09-10 18:55 .Neterr 阅读(314) 评论(0) 推荐(0) 编辑
摘要:消息处理父类: /// <summary> /// 异步消息处理 /// </summary> public abstract class AsyncProcessor<TMessage> { private readonly BlockingCollection<TMessage> _messag 阅读全文
posted @ 2020-08-30 15:42 .Neterr 阅读(280) 评论(0) 推荐(0) 编辑
摘要:Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程,并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。 第一步:创建名为 TopshelfDemo 的控制台应用程序。 阅读全文
posted @ 2020-08-26 20:34 .Neterr 阅读(178) 评论(0) 推荐(0) 编辑