一:背景 1. 讲故事 过年喝了不少酒,脑子不灵光了,停了将近一个月没写博客,今天就当新年开工写一篇吧。 去年年初有位朋友找到我,说他们的系统会偶发性崩溃,在网上也发了不少帖子求助,没找到自己满意的答案,让我看看有没有什么线索,看样子这是一个牛皮藓的问题,既然对方有了dump,那就分析起来吧。 二: ...
好久不见,我又回来了。 给大家分享一个我最近使用c#代码操作ftp服务器的代码示例: 1 public abstract class FtpOperation 2 { 3 /// <summary> 4 /// FTP服务器地址 5 /// </summary> 6 private string f ...
Unity 默认可以序列化值类型, Serializable属性修饰的类型, 派生自UnityEngine.Object的类型, 通常这些类型已经足以供日常使用了. 但是有时我们希望在编辑器面板上序列化一个接口或者抽象类, 则需要用到 SerializeReference属性. 假定我们有一个接口I ...
概述:MVVM Toolkit是.NET平台的强大工具包,旨在简化MVVM应用程序开发。提供基础功能如ViewModelBase和RelayCommand,支持数据绑定和命令绑定,通过Messenger实现消息订阅发布。其高级功能包括ObservableObject和WeakEventListene ...
前言我个人对三维渲染领域的开发有着浓厚的兴趣,尽管并未在相关行业工作过,我的了解还很片面。去年,在与群友聊天时,他们推荐了一本《Unity Shader入门精要》,说适合像我这样想自学的新人,于是我打开了通往新世界的大门。这本书涵盖了很多基础的渲染知识,如光照、阴影、各种风格的渲染等等。对于有兴趣的 ...
概述:在C#多线程编程中,合理终止线程是关键挑战。通过标志位或CancellationToken,实现安全、协作式的线程终止,确保在适当时机终止线程而避免资源泄漏。 应用场景: 在C#多线程编程中,有时需要终止正在运行的线程,例如在用户取消操作、程序关闭等情况下。 思路: 线程终止通常涉及到合作式终 ...
internal class Program { static List<string> list=new List<string>() { "A","B","C","D","A","B","C","D" }; static string hiddenEle1 = string.Empty;//第一 ...
概述:MVVM是一种在WPF开发中广泛应用的设计模式,通过将应用程序分为模型、视图、和视图模型,实现了解耦、提高可维护性的目标。典型应用示例展示了如何通过XAML、ViewModel和数据绑定创建清晰、可测试的用户界面。 什么是MVVM? MVVM(Model-View-ViewModel)是一种用 ...
随着现代软件对性能和响应速度的要求越来越高,异步编程已经成为许多开发者必须掌握的技能。C# 提供了多种实现异步编程的方式,每种方式都有其特定的适用场景和优缺点。本文将详细介绍 C# 中实现异步编程的常用方式,帮助读者更好地理解并选择合适的异步编程方法。 一、Task 和 Task C# 5.0 引入 ...
MiniExcel简介 简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。 目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel 尝试以 Stream 角度写底层算法逻辑,能让原本1000多MB占用降低到几MB,避免内存不够情况。 特点: 低内存 ...
C#获得项目最后编译时间 效果 具体格式可以自定义 核心代码 string GetCompileVersion() { string OriginVersion = "" + System.IO.File.GetLastWriteTime(this.GetType().Assembly.Locati ...
1.编辑DataGridView的属性; 2.定义列的类型为chekcBox; 3.点击添加; 4.效果; 5.编辑; ...
概述:在WPF中实现依赖注入和控制反转,通过定义接口、实现类,配置容器,实现组件解耦、提高可维护性。 什么是依赖注入和控制反转? 依赖注入(Dependency Injection,DI): 是一种设计模式,旨在减少组件之间的耦合度。通过依赖注入,对象不再自行创建或查找依赖对象,而是通过外部注入的方 ...
最近做了几个 WPF + MudBlazor 的小东西,每次从头搭建环境比较繁琐,然鹅搭建过程还没啥技术含量,索性就直接做了个模板,方便以后使用。 1. 介绍 一个用来创建 .NET 8 + WPF + MudBlazor 的项目模板 适用于 VS2022 用法:vs插件市场下载 or 自己通过 G ...
将HTML转换为PDF可实现格式保留、可靠打印、文档归档等多种用途,满足不同领域和情境下的需求。本文将通过以下两个示例,演示如何使用第三方库Spire.PDF for .NET和QT插件在C# 中将Html 网页(URL)或HTML字符串转为PDF文件。 HTML转PDF所需工具: 1. Spire ...
概述:本教程教您如何将.NET Core项目打造成Windows服务,实现无需用户登录的后台运行。通过简单步骤,您可以快速部署并管理服务,确保应用持续高效运行。 将.NET项目制作成Windows服务可以让你的应用在后台持续运行,无需用户登录。以下是将.NET Core项目制作成Windows服务的 ...
C# 枚举 枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。 要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项: enum Level { Low, Medium, High } 您可以使用点语法访问枚举项: Level myVar ...
我们在操作实体的时候,经常会使用到Lambda表达式,如下所示就是对实体IOT_Sample的CrtTime进行操作: var ret = NestExtension.GetSort<IOT_Sample>(m => m.CrtTime, true); 但是往往有些时候我们具体的业务只告诉我们该实体 ...
TopShelf创建Windows服务 安装NuGet包TopShelf 如图1-1所示,先安装TopShelf的NuGet包; 图1-1 创建服务类 如图1-2所示,创建一个ServiceManager服务类,并创建了两个方法,分别为Start和Stop方法,分别在服务启动和停止时调用; 图2-1 ...
C#基于SMTP的邮件发送 准备工作 注册邮箱 首先我们需要注册一个作为发送邮件的邮箱,这一步可以直接进入网易邮箱官网进行注册, 注册地址:https://mail.163.com/ 这里我们可以选择【快速注册】和【普通注册】,如图1-1所示,这里我选择的普通注册; 图1-1 登录邮箱 注册完成之后 ...