
开发 WPF 程序时,限制一次只能打开一个程序。
场景:如果程序 D 已被运行 进程 A,那么再次启动程序D 运行进程 B,B 会识别到已有相同的进程,此时 B 会将 A 窗口激活弹出来,然后 B 再退出。这样不仅可以限制只能运行一个进程,而且可以让用户体验更加好。 如果程序 D 在一台计...
场景:如果程序 D 已被运行 进程 A,那么再次启动程序D 运行进程 B,B 会识别到已有相同的进程,此时 B 会将 A 窗口激活弹出来,然后 B 再退出。这样不仅可以限制只能运行一个进程,而且可以让用户体验更加好。 如果程序 D 在一台计...
在程序使用“普通用户”权限启动后,如果需要执行一些需要“管理员”权限的操作时,可以启动一个新的进程并配置 Verb = "runas" 。比如以下的重启计算机命令: 执行后,将会弹出一个 UAC 窗口。用户点击“是”之后,计算机就会重新启动...
使用 System.IO.File.WriteAllText 方法可以很轻松的将文字内容写入文件: 但如果要写入的文件比较特殊,就会抛出 UnauthorizedAccessException 异常: 在 .NET 7.0 中的提示大概是这...
从 .NET Standard 1.1 开始,dotnet 新增了 Architecure 枚举,用于表示处理器的架构(X86、X64、Arm或Arm64)。可参考微软的官方文档: https://learn.microsoft.com/e...
因为 DNS 的存在,我们发送一个 HTTP 请求时无需关心域名对应的 IP 地址究竟是什么。 出于优化访问速度或负载均衡等原因,不同的时刻、不同的地区访问同一个资源时对应的 WEB 服务器可能是不相同的。比如在访问 luyao.coder...
在 C# 中,使用 TimeSpan 来表示一个时间段。比如以下的 ts 变量代表 100 分钟。 但有时需要将 TimeSpan 转换为 DateTime 来完成一些骚操作。最简单高效的方式就是创建一个 DateTime 对象,并将 Ti...
本文来告诉大家在 dotnet 6 的 HttpClientHandler 和 SocketsHttpHandler 两个类型有什么不同
HttpClient 可以用来发送 HTTP 请求。HttpClient 可以设置为单例并在整个生命周期中重复使用。这是因为,HttpClient 有一个“连接池”来重用连接并减少 TCP 连接的数量。因此,如果您向同一主机发送多个请求,它...
在 C# 中,可以使用 FileSystemWatcher 来监控一个文件、目录是否发生改变。但如果用来监控日志文件(比如 log4net 输出的日志)则会发现:即使启用 LastWrite 和 Size 过滤器,变更反馈也不及时,甚至根本...
数据压缩是一个软件开发中的常见需求:很多时候需要先将较大的数据进行压缩然后再通过网络等进行传输。 在 .NET 中,有多个压缩算法供我们选择:Deflate、GZip 和 Br 。这些压缩算法都是基于流(Stream)的,在对字符串压缩前需...