探索.NET中的定时器:选择最适合你的应用场景
2024/5/27 11:43:46

概述:.提供多种定时器,如System.Windows.Fms.Timer适用于UI,System.Web.UI.Timer用于Web,System.Diagnostics.Timer用于性能监控,System.Threading.Timer和System.Timers.Timer用于一般定时任务。在. 6及以上,还有更直观的System.Threading.PeriodicTimer。选择合适的定时器,提升应用性能和用户体验。 今天看到一网友聊.中的定时器,我也把我知道和大家分享一下。 在.中,有多种定

MVVM模式的消息传递机制:Messenger.Default.Send 和 Register
2024/5/27 11:43:45

是在MVVM中用来传递消息的一种方式。它是在MVVMLight框架中提供的一个实现了IMessenger接口的类,可以用来在ViewModel之间、ViewModel和View之间传递消息。 Send 接受一个泛型参数,表示要发送的消息内容。Register 方法用于注册某个对象接收消息。public virtual void SendTMessage(TMessage message) {SendToTargetType(message null null) }public virtual void S

WPF UI更新技巧:掌握EventHandler的基础与Dispatcher的高级应用
2024/5/27 11:43:45

概述:在WPF中,通过EventHler可实现基础和高级的UI更新方式。基础用法涉及在类中定义事件,并在UI中订阅以执行更新操作。高级用法借助Dispatcher类,确保在非UI线程上执行操作后,通过UI线程更新界面。这两种方法提供了灵活而可靠的UI更新机制。 在WPF(Windows Presentation Foundation)中,使用EventHler更新UI内容是一种常见的做法。这可以通过基础用法和高级用法来实现。 1. 基础用法: 步骤:定义事件: 在需要更新UI的类中定义一个事件,并确保事件

优化代码性能:C#中轻松测量执行时间
2024/5/27 11:43:45

概述:本文介绍了在C#程序开发中如何利用自定义扩展方法测量代码执行时间。通过使用简单的Action委托,开发者可以轻松获取代码块的执行时间,帮助优化性能、验证算法效率以及监控系统性能。这种通用方法提供了一种便捷而有效的方式,有助于提高开发效率和代码质量。 在软件开发中,了解代码执行时间是优化程序性能的关键步骤之一。通过测量代码执行时间,开发人员可以定位和识别潜在的性能瓶颈,从而采取适当的措施进行优化。本文将介绍一种在C#中测量代码执行时间的方法,通过一个自定义的扩展方法来实现。 1. 为什么测量代码执行时

Taurus.MVC WebMVC 入门开发教程3:数据绑定Model
2024/5/27 11:43:44

前言: 在这篇 Taurus.MVC WebMVC 入门开发教程的第三篇文章中, 我们将重点介绍如何进行数据绑定操作,还会学习如何使用 ${属性名称} CMS 语法来绑定页面上的元素与 Model 中的属性。 步骤1:创建 Model 首先,我们需要创建一个 Model 类来存储数据。 在 Visual Studio 中,右键单击项目文件夹,选择「添加」 「新建项」。在弹出的对话框中,选择「类」,并命名为「User.cs」。 在 User.cs 类中,我们可以定义一些属性来表示用户信息,例如姓名、年龄等。

C#和sqlserver 如何实现 事务ACID和使用 数据库锁,悲观锁乐观锁死锁
2024/5/27 11:43:42

在C#中使用SQL Server实现事务的ACID(原子性、一致性、隔离性、持久性)属性和使用数据库锁(悲观锁和乐观锁)时,你可以通过ADO.的SqlConnection和SqlTransaction类来实现。下面是一些示例和概念说明。 实现ACID事务 ACID属性是事务处理的四个基本特征,它们确保事务在数据库中的正确性和可靠性。using System using System.Data using System.Data.SqlClient class Program { stati

在Winform界面中使用自定义控件,丰富界面的效果处理
2024/5/27 11:43:42

我们在《SqlSugar开发框架》中,Winfm界面开发部分往往也用到了自定义的用户控件,对应一些特殊的界面或者常用到的一些局部界面内容,我们可以使用自定义的用户控件来提高界面的统一性,同时也增强了使用的便利性。如我们Winfm界面中用到的分页控件、附件显示内容、以及一些公司、部门、菜单的下拉框列表等等,由于重复多处使用,因此一处封装多处收益。 1、回顾Winfm界面中自定义的用户控件的处理场景 其实我的关于Winfm的开发随笔,介绍了不少的控件使用、以及自定义控件的使用例子,如随笔《在Winfm界面使用

.NET高级调试之sos命令输出看不懂怎么办
2024/5/27 11:43:41

一:背景 1. 讲故事 很多.开发者在学习高级调试的时候,使用sos的命令输出会发现这里也看不懂那里也看不懂,比如截图中的这位朋友。.高级调试属于一个偏冷门的领域,国内可观测的资料比较少,所以很多东西需要你自己去探究源代码,然后用各种调试工具去验证,相关源代码如下:ceclr: https:github.comdotruntime windows: https:github.comreactosreactos linux: https:www.kernel.g这一篇权当抛砖引玉,来引导一下如何去

细聊ASP.NET Core WebAPI格式化程序
2024/5/27 11:43:39

前言 我们在使用ASP. Ce WebApi时它支持使用指定的输入和输出格式来交换数据。输入数据靠模型绑定的机制处理,输出数据则需要用格式化的方式进行处理。ASP. Ce框架已经内置了处理JSON和XML的输入和输出方式,默认的情况我们提交JSON格式的内容,它可以自行进行模型绑定,也可以把对象类型的返回值输出成JSON格式,这都归功于内置的JSON格式化程序。本篇文章我们将通过自定义一个YAML格式的转换器开始,逐步了解它到底是如何工作的。以及通过自带的JSON格式化输入输出源码,加深对Fma

Taurus.MVC WebMVC 入门开发教程2:一个简单的页面呈现
2024/5/27 11:43:39

前言: 在上一篇中,我们了解了如何下载、配置和运行 Taurus.MVC WebMVC 框架。 现在,让我们开始编写一个简单的页面并进行呈现。 步骤1:创建控制器 首先,我们需要创建一个控制器来处理页面呈现的逻辑。 在 Visual Studio 中,右键单击项目文件夹,选择「添加」 「类」。 在弹出的对话框中,命名为「HomeController」。点击「添加」按钮以完成控制器的创建。 步骤2:编写页面呈现方法 在 HomeController.cs 文件中,定义以下内容。public class Ho

Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行
2024/5/27 11:43:37

本系列的目录大纲为: Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行Taurus.MVC WebMVC 入门开发教程2:一个简单的页面呈现Taurus.MVC WebMVC 入门开发教程3:数据绑定ModelTaurus.MVC WebMVC 入门开发教程4:数据列表绑定ListModelTaurus.MVC WebMVC 入门开发教程5:表单提交与数据验证Taurus.MVC WebMVC 入门开发教程6:路由配置与路由映射Taurus.MVC WebMVC 入门开发教程7:

WPF资源管理:窥探外部、窗体、全局和动态资源的秘密!
2024/5/27 11:43:36

概述:WPF中的资源管理机制包括外部资源、窗体资源、全局资源和动态资源。通过这些资源,开发者能够在应用程序中有效地组织、重用样式和模板,实现灵活的设计和运行时更改。这四种资源类型分别适用于不同的应用场景,为WPF应用程序提供了强大的扩展性和可维护性。 在WPF(Windows Presentation Foundation)中,资源是一种重要的机制,用于管理和重用在应用程序中使用的元素。这些资源可以分为外部资源、窗体资源、全局资源和动态资源。 1. 外部资源 外部资源是存储在独立的XAML文件中的资源,可

WPF大展示专业指南:轻松实现多屏显示的绝技
2024/5/27 11:43:36

概述:WPF通过System.Windows.Fms.Screen类,实现多屏显示轻而易举。通过获取屏幕信息、确定窗体位置和设置窗体大小,可在大型展示或数据可视化应用中灵活利用多屏幕。示例代码清晰演示了如何在WPF中实现这一功能。 在WPF(Windows Presentation Foundation)中,实现多屏显示可以通过以下步骤完成。多屏显示对于大型展示或数据可视化应用程序非常有用。获取屏幕信息: 使用System.Windows.Fms.Screen类获取系统上所有屏幕的信息,包括分辨率和位置。

开源:Taurus.DistributedLock 分布式锁框架,支持 .Net 和 .Net Core 双系列版本
2024/5/27 11:43:34

前言: 在经过漫长的技术沉淀,终于又为 . 及 . Ce 的微服务系列框架贡献当中的一个重要组件。 Taurus.DistributedLock is a distributed lock f . . ce.【支持:Redis、MemCache、Database、Local、File 五类锁】 1、开源地址: https:github.comcyq1162Taurus.DistributedLock# Taurus.DistributedLock 分布式锁,使用 . Ce 示例: 2、以 Nuget 中

浅谈WPF之DataGrid动态生成列
2024/5/27 11:43:33

在日常开发中,DataGrid作为二维表格,非常适合数据的展示和统计。通常情况下,一般都有固定的格式和确定的数据列展示,但是在某些特殊情况下,也可能会需要用到动态生成列。本文以一些简单的小例子,简述在WPF开发中,如何动态生成DataGrid的行和列,仅供学习分享使用,如有不足之处,还请指正。 涉及知识点 在本示例中,用到的知识点如下所示:CommunityToolkit.Mvvm,微软提供的一个基于.的MVVM框架库,通过此库,可以方便是实现数据绑定和命令绑定,达到前后端分离的目的。 Observ

WPF PART_LeftThumb_DragDelta事件
2024/5/27 11:43:33

PART_LeftThumb_DragDelta事件是拖拽过程中实时触发的。当用户按住Thumb控件并拖动时,该事件会在每次鼠标或手指移动时实时触发,而不是按照时间间隔定时触发。这使得应用程序可以实时响应用户的操作,更新UI或执行其他操作。 DragDeltaEventArgs.HizontalChange是指拖动操作期间水平方向的变化量。 鼠标拖拽较快时,鼠标的位置变化量较大,但并不是鼠标位置每改动一点就会触发一次PART_LeftThumb_DragDelta事件。这是因为PART_LeftThum

.Net Core Entity Framework Core 的基础封装 -数据库操作拦截器
2024/5/27 11:43:32

自己制作的一个基于Entity Framewk Ce 的数据库操作拦截器,可以打印数据库执行sql,方便开发调试,代码如下: summary EF Ce 的数据库操作拦截器,用于在数据库操作过程中进行日志记录和监视。 summary remarks 作者:我只吃饭不洗碗 创建日期:2024年1月29日 remarks public class LoggingIntercept : DbCommIntercept { summary 在执行查询命令之前拦截并输出日志。 summary param

学习如何在C#中轻松实现串口数据接收:清晰步骤与实例代码
2024/5/27 11:43:32

概述:以上C#示例演示了如何使用SerialPt类实现串口数据接收。通过设置串口属性、定义数据接收事件处理程序,你可以轻松地打开串口、监听数据,并在事件处理程序中对接收到的数据进行处理。这提供了一个基本框架,可根据实际需求进行定制。 在C#中实现串口数据接收通常需要使用System.IO.Pts命名空间提供的SerialPt类。以下是一个简单的例子,演示了如何在C#中接收串口数据。 首先,确保你的项目引用了System.IO.Pts命名空间。你可以在代码中添加如下的using语句: using Syste

.net core di ioc
2024/5/27 11:43:31

(Dependency InjectionDI)依赖注入,又称依赖关系注入,是一种软件设计模式,也是依赖倒置原则的一种体现。 依赖倒置原则的含义如下上层模块不依赖下层模块。二者都依赖抽象 抽象不依赖细节 细节依赖抽象依赖注入原则有别于传统的通过关键字new直接依赖下层模块的形式,以第三方容器注入的形式进行依赖项的管理。依赖注入是实现控制反转的一种手段,而用来实现依赖注入的技术框架又被成为IOC框架 控制反转(Inversion of ControlIOC),由于对象之间存在紧密的相互依赖关系,每个对象都需

表达式树(Expression)的执行、解释与创建
2024/5/27 11:43:30

前言:在这里不进行概念性描述,能看到这篇文章说明你已经知道如何使用表达式树 执行 这里需要说明下表达式树是表示代码的数据结构,并不是经过编译且可执行的代码,如果想要执行由表达式树表示的 . 代码,必须将其转换为可执行的 IL 指令。这时候我们需要调用编译函数创建委托(Delegate),再执行。 执行编译后的委托通常看到三种方式:func(入参)、func.Invoke(入参)、func.DynamicInvoke(入参) 前两种用于在确认委托类型是可直接调用,DynamicInvoke一般在不确定委托的

记一次 .NET某列控连锁系统 崩溃分析
2024/5/27 11:43:29

一:背景 1. 讲故事 过年喝了不少酒,脑子不灵光了,停了将近一个月没写博客,今天就当新年开工写一篇吧。 去年年初有位朋友找到我,说他们的系统会偶发性崩溃,在网上也发了不少帖子求助,没找到自己满意的答案,让我看看有没有什么线索,看样子这是一个牛皮藓的问题,既然对方有了dump,那就分析起来吧。 二:WinDbg分析 1.为什么会崩溃 不管是 windows 还是 linux 上的.程序崩溃都会存在异常码,前者是ExceptionCode,后者是 SignalCode,所以先用 !analyze v 观察看

c# 操作ftp服务器文件
2024/5/27 11:43:28

好久不见,我又回来了。 给大家分享一个我最近使用c#代码操作ftp服务器的代码示例: 1 public abstract class FtpOperation2 {3 summary4 FTP服务器地址5 summary6 private string ftpServer7 8 summary9 用户名 10 summary 11 private stri

Unity中的SerializeReference使用简介
2024/5/27 11:43:27

Unity 默认可以序列化值类型 Serializable属性修饰的类型 派生自UnityEngine.Object的类型 通常这些类型已经足以供日常使用了. 但是有时我们希望在编辑器面板上序列化一个接口或者抽象类 则需要用到 SerializeReference属性. 假定我们有一个接口IEatable 并实现了两个类Bread和Bun: public interface IEatable {int Calie { get } }public class Bread : IEatable {[field

SQL中为什么不要使用1=1?
2024/5/27 11:43:27

最近看几个老项目的SQL条件中使用了1=1,想想自己也曾经这样写过,略有感触,特别拿出来说道说道。 编写SQL语句就像炒菜,每一种调料的使用都会影响菜品的最终味道,每一个SQL条件的加入也会影响查询的执行效率。那么 1=1 存在什么样的问题呢?为什么又会使用呢? 为什么会使用 1=1? 在动态构建SQL查询时,开发者可能会不确定最终需要哪些条件。这时候,他们就会使用“1=1”作为一个始终为真的条件,让接下来的所有条件都可以方便地用“”连接起来,就像是搭积木的时候先放一个基座,其他的积木块都可以在这个基座上

c#使用webView2 访问本地静态html资源跨域Cors问题 (附带代理服务helper帮助类)
2024/5/27 11:43:26

背景 在浏览器中访问本地静态资源html网页时,可能会遇到跨域问题如图。 是因为浏览器默认启用了同源策略,即只允许加载与当前网页具有相同源(协议、域名和端口)的内容。 WebView2默认情况下启用了浏览器的同源策略,即只允许加载与主机相同源的内容。所以如果我们把静态资源发布到iis或者通过node进行启动就可以看到不跨域了。 解决方案使用CS(Crossigin Resource Sharing):如果你有控制服务器端,可以在服务器端配置CS来允许跨域请求。在服务器端的响应头中添加相关的CS头部信息,

探索MVVM Toolkit:简化.NET应用开发,构建高效MVVM架构
2024/5/27 11:43:24

概述:MVVM Toolkit是.平台的强大工具包,旨在简化MVVM应用程序开发。提供基础功能如ViewModelBase和RelayComm,支持数据绑定和命令绑定,通过Messenger实现消息订阅发布。其高级功能包括ObservableObject和WeakEventListener,助力开发人员构建可维护、高性能的MVVM应用,提升用户体验。 MVVM Toolkit MVVM Toolkit是.平台上支持MVVM(ModelViewViewModel)模式的工具包,旨在简化和优化MVVM应用程序

.net core微服务之服务发现
2024/5/27 11:43:24

一:nacoshttps:nacos.iodocslatestwhatisnacoshttps:github.comalibabanacos 二:consulhttps:developer.hashicp.comconsuldocsproduct_intent=consulhttps:github.comhashicpconsul 服务发现的框架常用的还有zookeeper eureka等,这里准备使用nacos 前置条件准备 docker,yamlversion: "3.8" wks:case_brid

.NET配置文件大揭秘:轻松读取JSON、XML、INI和环境变量
2024/5/27 11:43:23

概述:.中的IConfiguration接口提供了一种多源读取配置信息的灵活机制,包括JSON、XML、INI文件和环境变量。通过示例,清晰演示了从这些不同源中读取配置的方法,使配置获取变得方便且易于扩展。这种方式适用于不同场景,如API密钥、数据库连接等,为应用提供了高度可配置性。 在.中,IConfiguration接口提供了一种灵活的方式来管理和读取应用程序配置信息。这可以包括来自不同源的配置信息,如JSON、XML、INI文件以及环境变量。 读取JSON文件: JSON文件通常用于保存结构化的配置

c# winfrom DataGridView 动态UI下载功能(内含GIF图) || 循环可变化的集合 数组 datatable 等
2024/5/27 11:43:22

Gif演示 分解步骤 1,使用组件DataGridView 2,使用DataSource来控制表格展示的数据来源(注意:来源需要是DataTable类型) 3,需要用到异步线程。如果是不控制数据源的话,需要使用UI安全线程;(使用Control.Invoke或Control.BeginInvoke方法) 4,DataGridView的列如果设置图片,尽量代码设置 5,DataTable类型也是可以使用LINQ的,参考:AsEnumerable 完整代码using Newtonsoft.Json usin

使用 .NET 8.0 和 OpenGL 创建一个简易的渲染器
2024/5/27 11:43:22

前言我个人对三维渲染领域的开发有着浓厚的兴趣,尽管并未在相关行业工作过,我的了解还很片面。去年,在与群友聊天时,他们推荐了一本《Unity Shader入门精要》,说适合像我这样想自学的新人,于是我打开了通往新世界的大门。这本书涵盖了很多基础的渲染知识,如光照、阴影、各种风格的渲染等等。对于有兴趣的同学,可以在京东读书中在线阅读,无需购买纸质版。 在学习过程中,我发现使用Unity Shader编写着色器非常方便,它很好地封装了渲染概念中的Pipeline、Pass等要点。因此,我萌生了一个想法:是否可以