刷新
AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图

博主头像 一:背景 1. 讲故事 上一篇我们聊过AOT编程中可能会遇到的三大件问题,而这三大件问题又是考验你对AOT中节点图的理解,它是一切的原点,接下来我就画几张图以个人的角度来解读下吧,不一定对。 二:理解节点依赖图 1. 对节点的理解 按照官方的说法,构建依赖节点和GC的标记算法一样,都是采用深度优先, ...

AOT漫谈专题(第六篇): C# AOT 的泛型,序列化,反射问题

博主头像 一:背景 1. 讲故事 在 .NET AOT 编程中,难免会在 泛型,序列化,以及反射的问题上纠结和反复纠错尝试,这篇我们就来好好聊一聊相关的处理方案。 二:常见问题解决 1. 泛型问题 研究过泛型的朋友应该都知道,从开放类型上产下来的封闭类型往往会有单独的 MethodTable,并共用 EECl ...

第41篇 Grpc实现客户端与服务端高效通信

博主头像 grpc的确是现在最流行的跨平台间的通信技术。远不止.net上使用。grpc是谷歌公司推出的跨语言平台之间的通信技术。和webapi不同的是,可以使用自己的语言和另一种语言进行通信。 简单来讲就是首先使用一种Proto的协议文件,可以生成客户端和服务端两种文件。客户端和服务端可以使用任意的语言。gr ...

.NET 隐藏/自定义windows系统光标

博主头像 本文介绍如何操作windows系统光标。正常我们设置/隐藏光标,只能改变当前窗体或者控件范围,无法全局操作windows光标。接到一个需求,想隐藏windows全局的鼠标光标显示,下面讲下如何操作 先了解下系统鼠标光标,在鼠标属性-自定义列表中可以看到一共有13种类型,对应13种工作状态: 操作系统 ...

第40篇 ConfuserEx混淆代码,防止反编译

博主头像 要想自己的dll或程序禁止被反编译成功,可以使用ConfuserEx混淆代码 1.正常反编译 1.1 创建一个demo控制台 新建Test类,写个fun 1.2 正常编译看的效果 目前有很多.NET的反编译工具,例如ILSpy,JustDecompile,dnSpy.下面使用dnSpy对Consol ...

Task.Delay 和 Thread.Sleep 的区别

博主头像 Task.Delay 和 Thread.Sleep 都可以用来在代码中引入延迟,但它们之间有几个关键的区别: 异步 vs. 同步: Thread.Sleep 是一个同步方法,它会阻塞当前线程,直到指定的时间过去。这意味着在 Thread.Sleep 执行期间,当前线程不能做任何其他事情,这可能会导致 ...

第38篇 net8接口调试方式

博主头像 .net提供了内置的接口调试方式 1.新建.net core web api控制台应用程序 2.封装好jwt验证机制 token令牌验证机制 /// <summary> /// 登录 /// </summary> /// <param name="request"></param> /// <ret ...

第37篇 JVM调优方式

博主头像 场景 1:大量业务数据缓存导致堆内存溢出 场景描述: 一个企业级 Web 应用使用了大量内存缓存来存储业务数据,比如用户信息、订单数据等。由于缓存策略不当,大量无效数据长期存储在堆内存中,导致 OutOfMemoryError(堆内存溢出)。 解决思路: 1.优化缓存策略: 使用 LRU(Least ...

第35篇 实现C#编程文件夹加锁保护

博主头像 要想保护自己的文件夹内的信息不被别人看到,可以给文件加个锁【注意:加锁用的密码一定要记住】 用C#语言实现一个文件夹锁的程序,程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bda ...

.NET周刊【10月第2期 2024-10-13】

博主头像 国内文章 C#/.NET/.NET Core优秀项目和框架2024年9月简报 https://www.cnblogs.com/Can-daydayup/p/18457705 文章介绍了多个与C#.NET和ASP.NET相关的优秀开源项目和框架,包括Avalonia UI、WaterCloud、Cod ...

第34篇 局域网内两台电脑间互相访问

博主头像 需要在局域网内远程电脑 1.方式一: 通过第三方工具,比如向日葵,AnyViewer等工具 2.方式二:远程桌面方式 步骤1. 首先,需在目标电脑上启用远程桌面连接功能。您可以点击“开始”图标,选择“设置” > “系统” > “远程桌面”,将“启用远程桌面”打开即可。 步骤2. 在搜索框中输入“远程 ...

第33篇 window和linux的文件路径的区别

博主头像 今天不讨论技术问题,而是简单聊一下不同系统的路径问题 正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是""。 在Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"",比如"C:\Windows\System" ...

AOT漫谈专题(第四篇): C#程序如何编译成Native代码

博主头像 一:背景 1. 讲故事 大家都知道所谓的.NET Native AOT即通过AOT编译器直接将C#代码编译成机器码,大家也习惯用C/C++的编译过程来类比,都是静态编译本质上都差不多,这篇我们借助工具从宏观层面去看一看AOT的编译过程。 二:C/C++ 的编译过程 用gcc编译过c代码的朋友都知道, ...

C#使用 MailKit 收发邮件

博主头像 目录获取QQ邮箱授权码安装 MailKit配置邮件服务器信息实现邮件收发方法测试邮件收发参考文章 获取QQ邮箱授权码 打开QQ邮箱,进入 设置->账号 页面: 在 POP3/IMAP/SMTP 中开启 SMTP服务,然后点击 授权码复制授权码: QQ邮箱服务器的参数如下,详细内容参考SMTP/IMA ...

第32篇 .Net特性Attribute的高级使用

博主头像 今天给大家讲讲.net中特性的高级使用 1.什么是特性 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。 用[]来标识,在.Net 框架提供了两种类型的特性:预定义特性和自定义特性。 可以用这个图来直观看看Attribute属性的 ...

<123···21>