摘要:
传入实现了比较器的泛型参数,并设置其最小值和最大值,内部使用比较器进行对比,小于最小值则使用最小值,大于最大值则返回最大值,否则返回原值 public T Check<T>(T val, T min, T max) where T : IComparable<T> { if (val.Compare 阅读全文
摘要:
/// <summary> /// windows防火墙入站规则IP添加器 /// </summary> internal class NetFwRuleIPAdder { readonly string ruleName; readonly object _lock = new object(); 阅读全文
摘要:
这里讲的是.Net Framework4.8的方式,后续的各类Net Core版本则是另一种方式, 1,要先有一个net4.8的控台程序 2,在控制台项目上右键新建项,找到Windows服务,选中,添加 3,将原控制台中Main中的代码全部移动到Service1.cs的OnStart方法中(选中Se 阅读全文
摘要:
async void通常用于事件处理程序或其他不需要返回值的情况,好像是一个为了解决历史遗留问题创建的机制, 非必要情况下,不建议使用async void,推荐使用async Task替代 async void和主线程貌似是一个线程, 如果async void中存在异步等待,执行到await时,会在 阅读全文
摘要:
Channel是C#新推出的一个容器类型,具有异步、高性能、线程安全等特点, 相当于一个封装好的队列容器,可以一边向里面放数据,一边从里面拿数据,用来做消息队列非常的方便 Channel有2个静态方法可以创建有限和无限2种通道 创建的时候,可以设置BoundedChannelOptions或者Unb 阅读全文
摘要:
实现了一个使用字符串来切割字符串的扩展方法,同时发现可以使用正则表达式来切割字符串 手动实现的这个由于使用的是迭代枚举数的方式返回的数据,某些场景下比用正则切割性能更好一些 public static IEnumerable<string> SplitByString(this string tex 阅读全文
摘要:
自己写的一个简单的压缩算法,但是由于数据源无法保证数据的连续性,和Gzip对比后失去优势,因此最终弃用了,扔了可惜,发布上来看看之后能否用到 /// <summary> /// 心率数据压缩算法,数据特点: /// 1,可以用一个字节表示; /// 2,数值不为0; /// 3,存在大量连续重复的数 阅读全文
摘要:
DateTime dt = DateTime.Now; //本地时间 string str0 = dt.ToString(); Console.WriteLine(str0); //2025-01-17 16:05:34 //将本地时间输出为ISO 8601格式字符串,东八区后面会+08:00 st 阅读全文
摘要:
有的时候使用Dapper执行数据操作时,我们会把模型对象直接作为参数传递进去, 但是需要在注意的是!Dapper解析数据是根据属性进行解析的,如果传递的类中使用字段赋值,就会报错 Parameter '?xxx' must be defined class AAA { public int ID { 阅读全文
摘要:
有的时候咱们需要循环执行业务,如果处理过程不是计算密集型,就可以使用多线程并行处理,这样能大幅度提高执行效率 最开始我是想着有没有现成的,结果找了半天没发现有现成的,于是就自己封装了一个,简单测试了一下发现没啥问题 异步并行执行器 /// <summary> /// 异步并行执行器,可以将任务并行执 阅读全文