后端
未读
【CSharp】通过SemaphoreSlim类限制资源访问线程数
概念 在 C# 中,SemaphoreSlim 是 System.Threading 命名空间下的轻量级同步原语,用于限制同时访问共享资源的线程数量。 核心特性 轻量高效 专为高性能设计,适用于进程内同步,比 Semaphore 类更高效。 异步支持 提供 WaitAsync() 方法,支持异步编程
后端
未读
【CSharp】抽象类和接口详解
抽象类(Abstract Class) 概念 不能实例化:抽象类不能被实例化,它通常作为基类存在,为子类提供一套通用的接口和部分实现。 包含实现:抽象类可以包含具体的方法实现和抽象方法。抽象方法必须在子类中被重写。 单继承:一个类只能继承自一个抽象类(C#中不支持多重继承)。 应用场景 当你希望提供
后端
未读
【WPF】单双屏显示切换控制
前言 近期我完成了一个项目,该项目需求是在连接了双显示器的设备上,对屏幕显示设置的更改进行监听。具体而言,当显示设置调整为 “复制这些显示器” 时,程序要自动隐藏;而当显示设置变为 “扩展这些显示器” 时,程序则需显示在非主显示器的第二显示器上。接下来,我会对此次项目中的业务逻辑进行简单记录,希望能
后端
未读
【WPF】解决在WPF中使用MediaElement控件播放视频卡顿问题
问题 在近期项目中,我使用了 WPF 原生的 MediaElement 媒体控件来播放视频。然而,当我的笔记本连接外接显示屏时,程序中 MediaElement 控件播放视频会出现短暂卡顿,尤其是在每次实例化该控件并自动播放视频时。而当我断开外接显示屏后,MediaElement 控件则能正常播放视
后端
未读
【CSharp】使用SpeechSynthesizer类将文本转换为语音
简介 SpeechSynthesizer 是 .NET Framework 和 .NET Core/5+ 中用于文本到语音(Text-to-Speech, TTS)转换的类。它属于 System.Speech.Synthesis 命名空间,主要用于将文本转换为语音并播放或保存为音频文件。 Speec
后端
未读
【CSharp】NLog日志记录库的简介及简单使用
简介 NLog 是一个灵活且高性能的日志记录库,专为 .NET 平台设计。它允许开发者在应用程序中轻松地记录日志,并将日志输出到多种目标(如文件、数据库、控制台、邮件等)。NLog 以其配置简单、扩展性强和高性能著称,是 .NET 开发中最流行的日志记录库之一。 特点 高性能:NLog 经过优化,能
后端
未读
【CSharp】INI文件的简介及读写操作
简介 INI文件是一种常见的配置文件格式,通常用于存储应用程序的配置信息。它的名称来源于“Initialization”(初始化),因为这种文件通常用于在程序启动时加载初始配置。INI文件以文本形式存储,结构简单、易于阅读和编辑,因此在早期的Windows应用程序中广泛使用。 INI文件的基本结构
后端
未读
【CSharp】使用Fleck库实现WebSocket服务
前言 最近公司有个项目需要用C/S架构的桌面应用程序与B/S架构的网页程序进行通信做数据的交互功能。在网上查了一下资料,发现 Fleck 实现一个WebSocket服务竟然如此简单明了,于是在此记录和整理了一下 Fleck 实现WebSocket服务的简单应用,希望对你有所帮助。 简介 Fleck
后端
未读
【CSharp】lock(this)与lock(private object)区别
前言 在使用多线程编程时,我们会对代码关键部分确保其一次只由一个线程执行,对于防止争用条件和保持数据完整性至关重要。在C#中,lock 语句就是用于通过同步对共享资源的访问来实现此目的工具。本文介绍lock(this) 与lock(private object) 两种方法及区别。 简介 lock(t
后端
未读
【WPF】在WPF应用程序中捕获全局异常
前言 在WPF(Windows Presentation Foundation)应用程序中捕获全局异常,通常可以通过以下几个步骤来实现: Application.DispatcherUnhandledException事件: 这是WPF中用于捕获未处理异常的主要事件。你可以在App.xaml.cs文
后端
未读
【WPF】在WPF程序中防止触笔(Stylus)输入
前言 在WPF中使用WebView2时,发现无法在触摸屏中对WebView2打开的网页进行滑动操作,经过研究发现,WPF内置的触笔和触摸支持与WebView2中的触笔和触摸存在冲突,需要禁用掉WPF内置的触笔和触摸支持才能解决。 解决方案 方法一 使用AppContextSwitchOverride
后端
未读
【CSharp】封装一个简单的Socket通信
Socket服务端 代码示例 using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using S