- 博客(12)
- 收藏
- 关注
原创 .Net Core 异步理解 async+await和同步的区别
比如读写文件,以往同步方法时,派一个线程去读写点东西的时候,这个线程肯定是等在那的,读写这个事情是硬盘去做的,线程就是个使者,告诉硬盘要做哪些事就行,硬盘干完活就告诉线程,线程拿着结果开心地继续干下面的活。硬盘读写的时候,这个线程是非阻塞的,可以干其他活,提高效率。也就是说,如果是单次请求,或者并发量不大的时候,同步等待和异步等待可能从时间和调试的时候,程序员是无感的,但是,如果并发量大的话,那么在await的时候,主线程可以处理await之前或者之后的其他方法,这样从总执行时长是有优化的。
2025-08-30 20:52:30
319
原创 .netcore 使用Quartz定时任务
这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例。首先确保已经安装了 .NET Core SDK。通过以上步骤,你已成功创建了一个使用 .NET Core 和 Quartz.NET 实现的定时任务示例。你可以根据需求自定义作业和触发器,实现更复杂的定时任务。该示例创建了一个名为 HelloWorldJob 的作业,每隔 5 秒执行一次。作业的内容仅输出当前时间的 Hello, world!在控制台中,你将看到每隔 5 秒输出一次 "Hello, world!
2025-08-27 12:39:06
199
原创 Redis配置主从服务器报错:Error condition on socket for SYNC: No route to host
bind 127.0.0.1 -::1 -> # bind 127.0.0.1 -::1 注释掉表示允许除本机之外的ip连接。protected-mode yes -> protected-mode no 允许无认证连接。
2025-08-15 16:56:37
270
原创 【Redis】访问保护属性/参数protected-mode
如果没有设置bind,我们可以通过ip1:6379或ip2:6379来访问redis,即任意网卡的ip都可以访问redis。lo网卡(对应127.0.0.1IP地址)是一个特殊的网卡:是一个回环地址(Local Loopback),也就是只有本地才能访问到这个回环地址,而其他的计算机也只能访问他们自己的回环地址。因此,redis所在环境的本地访问是ok的,如果是客户端是外部网络,通过127.0.0.1:6379访问redis时,回环地址会解析为客户端的自己本地的网络,导致无法访问目标redis。
2025-08-14 11:31:52
399
原创 CentOS7报错解决:Cannot find a valid baseurl for repo: base/7/x86_64原创已于 2025-08-09 14:36:40 修改·187 阅
情况一: wget软件未安装,按以下配置:(常用)情况二: wget软件已安装,按以下配置:(常用)操作前提:请确保使用 root 权限执行以下步骤。切换至 yum 仓库配置目录。
2025-08-13 15:19:06
345
原创 深入浅出C#之Thread、ThreadPool、Task、Parallel的联系与区别
优点在于丰富的API,多线程方便管理,线程数量控制简单,但是主线程也会参与计算,导致主线程的阻塞问题(但是这个问题可以通过包一层来解决)优点在于提供了丰富的多线程操作API,缺点在于线程个数的使用不加限制,以及无法复用线程,因此推出了TheadPool技术。优点在于解决了线程个数的限制以及线程的复用,缺点在于API较少而且线程等待问题解决起来较为麻烦,因此推出了Task技术。优点在于丰富的API,以及多线程的方便管理,缺点在于线程数量控制较为麻烦,因此推出了Parrel技术。3.注意访问公共资源需要加锁。
2025-07-29 18:13:36
183
原创 C#使用Autofac实现控制反转IoC和面向切面编程AOP
启用拦截器主要有两个方法:EnableInterfaceInterceptors(),EnableClassInterceptors()。拦截器必须注册到Aufofac容器中,可以通过拦截器类型或者命名注入,这两种方式会让使用拦截器的方法有所不同。EnableClassInterceptors方法会创建一个目标类的子类代理类,这里需要注意的是只会拦截虚方法,重写方法。注意:需要引用Autofac.Extras.DynamicProxy2才能使用上面两个方法。第二种:在注册类型到容器的时候动态注入拦截器。
2025-07-29 02:21:40
427
原创 C# 之 反射性能优化1
反射是一种很重要的技术,然而它与直接调用相比性能要慢很多,因此如何优化反射性能也就成为一个不得不面对的问题。目前最常见的优化反射性能的方法就是采用委托:用委托的方式调用需要反射调用的方法(或者属性、字段)。目前最常见也就是二种方法:Emit, ExpressionTree。其中ExpressionTree可认为是Emit方法的简化版本, 所以Emit是最根本的方法,它采用在运行时动态构造一段IL代码来包装需要反射调用的代码, 这段动态生成的代码满足某个委托的签名,因此最后可以采用委托的方式代替反射调用。
2025-07-09 15:57:00
898
转载 C#高级语法之反射
当然以上的步骤利用直接引用项目也可以做到,那我们来点直接引用做不到的,比如动态加载配置文件的方式,我可以在项目运行时修改配置文件,然后动态加载dll文件。单例模式:类,能保证在整个进程中只有一个实例。配置名:appsettings.json。5、反射+ADO.NET时间数据库访问层。1、反射黑科技 ---反射破坏单例。4、反射对属性和字段赋值取值。泛型类作缓存提高查询效率。1、封装的获取类的方法。
2025-07-09 01:07:17
57
原创 element ui 动态添加table列
需求:不知道表格有多少列,具体表头列数从后端返回。如图,红色框框内的列是根据后端返回的数据确认的:1.做法:(图中红色框内是动态列的写法)1.1注意这个tableTitle是数组,所以后面的prop和lable使用的是item的属性。tableTitle写法类似:tableTitle:[{shopName:"店铺1"},{shopName:"店铺2"},{shopName:"店铺3"}]1.2后端返回数据格式如下:1.3前端接收后端数据后还要进行处理(注意红色框内的的意思是把对应
2022-02-24 17:58:42
10719
1
原创 设置数据库连接时长
在配置文件中设置数据库连接时长(只是连接上数据库,不是访问时长):Data Source=LAPTOP-B8MEPBU5;Initial Catalog=netcoredev;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=1;
2022-02-22 22:59:59
2081
原创 vue element ui合并表格(合并某列的行数据)
需求:按需合并某些列的数据自定义数据:tableData:[ { num:0, new_subject_name:"new_subject_name1", count1:"count11", percentage1:"percentage11", ...
2022-02-22 10:20:49
3322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅