
C#
文章平均质量分 77
狂奔之林
技术控,对很多技术都有涉猎,喜欢开源,了解新技术
走在架构师的路上
展开
-
C# 复制文件夹及文件夹目录下的文件
/// <summary> /// 复制文件夹中的所有内容 /// </summary> /// <param name="sourceDirPath">源文件夹目录</param> /// <param name="targetDirPath">目标文件夹目录</param> public static void CopyDirectory...原创 2021-04-20 16:57:24 · 645 阅读 · 0 评论 -
关于C# async/await的一些说明
转自:https://www.jianshu.com/p/1136e79d96e6关于C# async/await的一些说明下文以个人对async/await的理解为基础进行一些说明。1、自定义的几个关键概念 调用流阻塞:不同于线程阻塞,调用流阻塞只对函数过程起作用,调用流阻塞表示在一次函数调用中,执行函数代码的过程中发生的无法继续往后执行,需要在函数体中的某个语句停止的情形;调用流阻塞点:调用流阻塞中,执行流所停下来地方的那条语句;调用流阻塞返回:不同于线程阻塞,调用流发生阻塞的时候转载 2021-03-11 16:07:29 · 886 阅读 · 0 评论 -
利用.NET Core中的Worker Service,来创建windows服务或linux守护程序
转自:https://www.cnblogs.com/OpenCoder/p/12191164.html导航开始创建worker service 项目 Program.cs Worker.cs 依赖注入(DI) 重写BackgroundService类的StartAsync、ExecuteAsync、StopAsync方法 不要让线程阻塞worker类中重写的StartAsync、ExecuteAsync、StopAsync方法 在Worker Service中运行多个Worker类转载 2021-03-10 10:37:56 · 2622 阅读 · 0 评论 -
C# Task.Result与Task.GetAwaiter.GetResult()区别
转自:https://cloud.tencent.com/developer/article/1649197前几天在用线程池执行一些任务时运到一种情形,就是回调方法中使用到了异步方法,但是回调方法貌似不支持async await的写法。这时候我应该如何处理呢?是使用Task.Result来获取返回结果,还是使用GetAwaiter.GetResult()呢?本文就来探讨下吧。这里先上我这种场景的伪代码:ThreadPool.QueueUserWorkItem(ExcuteScanProcess转载 2021-03-08 16:19:34 · 9711 阅读 · 0 评论 -
各个版本Windows系统中自带的.NET Framework版本
转自:https://blog.youkuaiyun.com/yangowen/article/details/103934078① Windows Server :Windows Server版本 自带的.NET Framework 版本 Windows Server 2019 .NET Framework 4.7.2 Windows Server 2016 1803 .NET Framework 4.7.2 Windows Server 2016 1709 .NET Fr转载 2021-02-03 16:07:54 · 4188 阅读 · 0 评论 -
.NET 调整图片尺寸(Resize)各种方法
转自:晓晨Master本文中如无特别说明.NET指 .NET 5或者更高版本,代码同样可用于 .NET Core前言调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求,可以寻找开源的AI放大图片的方法。1.ImageSharp开源地址:https://github.com/SixLabors/ImageSharp安装:dotnet add package SixLabors.ImageSharp使用:..转载 2021-01-15 17:37:03 · 3262 阅读 · 2 评论 -
Redis使用场景
1、字符串使用场景 a) 缓存功能 典型使用场景:Redis作为缓存层,MySQL作为存储层,绝大部分请求的数据都是从Redis中获取,由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。 开发提示:与MySQL等关系型数据库不同的是,Redis没有命令空间,而且也没有对键名有强制要求,但设计合理的键名,有利于防止键冲突...转载 2019-10-12 09:49:48 · 184 阅读 · 0 评论 -
C#基础——Func和Action的介绍及其用法
Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能。Action<T>和Func<T,TResult>的功能是一样的,只是Action<T>没有返类型,Func<T,T,Result>:有参数,有返回类型Action,则既没有返回也没有参数,Func<T,TResult>的表现形式分为以下几.转载 2020-11-13 16:52:21 · 2726 阅读 · 0 评论 -
C#程序调用cmd.exe执行命令
转自:https://www.cnblogs.com/njl041x/p/3881550.html代码部分 usingSystem.Diagnostics; publicclassCmdHelper { privatestaticstringCmdPath = @"C:\Windows\System32\cmd.exe"; /// <summary> ...转载 2020-11-05 09:26:05 · 998 阅读 · 0 评论 -
C# 调用命令行执行Cmd命令
1.不知道为啥 process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe"; 这个执行命令一定要加/c ,/c ,/c,重要的事说3遍才能正常编译并运行cmd /c dir:是执行完dir命令后关闭命令窗口;cmd /k dir:是执行完dir命令后不关闭命令窗口。process.StartInfo.Arguments 我猜测这个调用的是第一张图的窗口,而不是二图的窗口代码:...转载 2020-11-05 09:22:13 · 2504 阅读 · 0 评论 -
C# Process类在程序中实现以管理员方式运行外部进程运行
var process = new Process{ StartInfo = { WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory, UseShellExecute = true, FileName = 'xxx.exe', CreateNoWindow...原创 2020-03-19 12:03:57 · 5742 阅读 · 0 评论 -
c# yield关键字原理详解
额外参考:https://www.cnblogs.com/blueberryzzz/p/8678700.html yield是C#为了简化遍历操作实现的语法糖,我们知道如果要要某个类型支持遍历就必须要实现系统接口IEnumerable,这个接口后续实现比较繁琐要写一大堆代码才能支持真正的遍历功能。举例说明using System;using System.Collectio...转载 2019-11-05 16:46:25 · 376 阅读 · 0 评论 -
c#四种定时器,wpf DispatcherTimer
c#中有四种定时器1:System.Threading.Timer使用:private System.Threading.Timer timerClose; timerClose = new System.Threading.Timer(new TimerCallback(timerCall), this, 5000, 0); private void timerCall(object o...转载 2018-03-01 10:34:57 · 1214 阅读 · 0 评论 -
C#中的那些全局异常捕获
1.WPF全局捕获异常 public partial class App : Application { public App() { // 在异常由应用程序引发但未进行处理时发生。主要指的是UI线程。 this.DispatcherUnhandledException += new System.Windows.Threadi...转载 2018-03-01 10:47:52 · 1594 阅读 · 0 评论 -
通过属性进行浅拷贝
一、方法体 是一个静态方法CopyHelper,包含以下三个部分1、给PropertyInfo[]类型加个扩展的方法,方便进行查询是否存在相同类型,相同名称的字段。 /// <summary> /// PropertyInfo[]扩展方法,通过名称获得属性 /// </summary> /// <param n...转载 2018-06-12 10:30:39 · 171 阅读 · 0 评论 -
WPF 只允许运行一个程序
问题描述:有时一个程序需要单例运行,因为涉及到上下位连接,数据库访问,安全性等问题,本博客来探讨如何实现WPF 程序的单例运行。措施:利用 System.Threading.Mutex 来实现控制程序的单例运行。这是MSDN 官方的资料: Mutex : http://msdn.microsoft.com/en-us/library/system.threading.mutex%28v=vs....转载 2018-03-01 10:44:04 · 531 阅读 · 0 评论 -
C# 打开指定目录并定位到文件
1.打开文件夹:System.Diagnostics.Process.Start(FilePath);打开文件夹中某个文件:System.Diagnostics.Process.Start(FilePath+"/"+FileName);打开文件夹并选中单个文件:System.Diagnostics.Process.Start("Explorer", "/select转载 2017-11-08 22:55:10 · 20805 阅读 · 6 评论 -
C#加密算法汇总
C#加密算法汇总http://www.cnblogs.com/zengxiangzhan/archive/2010/01/30/1659687.htmlDES加密解密公用方法(详细注释)http://www.cnblogs.com/Bright/archive/2012/02/01/2334545.htmlhttps://blog.youkuaiyun.com/baidu_22254181/a...转载 2019-03-05 11:56:32 · 669 阅读 · 0 评论 -
C# 程序关闭托盘图标不会自动消失
c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失 必须将鼠标移到图标上面时才能消失? 请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束), windows系统好多程序都会这样。网上搜索后大家说法不一,如下:1、这个就这样,很多程序都有这个问题,大家都习惯了2、似乎没法解决。。任务管理器是强制关闭的,程序认为是异常结束转载 2017-11-25 14:25:00 · 2879 阅读 · 0 评论 -
c# 无损高质量压缩图片代码
转载:http://www.cnblogs.com/ZXdeveloper/最近,项目上涉及到了图像压缩,发现原有的图像压缩功能,虽然保证了图像的大小300K以内,但是压缩后的图像看的不在清晰,并且,限定了图片的Height或者是Width。在优快云上看到了一个压缩算法:http://blog.youkuaiyun.com/qq_16542775/article/details/51792149进过测试这个...转载 2018-06-12 10:34:05 · 10552 阅读 · 7 评论 -
C# 获取常见软件的安装路径(调用注册表)
绝大多数软件,基本上都会在注册表中记录自己的名字和安装路径信息。在注册表中记录这些信息的位置是:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths因此,我们只要能访问到注册表的这个位置,就可以获取到某些软件的名称和安装路径信息。public enum Softwares { Excel,...原创 2018-06-06 10:29:54 · 5701 阅读 · 1 评论 -
微软.net技术文档参考地址
1.https://docs.microsoft.com/zh-cn/dotnet/ 适合中高级开发人员参考。2.https://docs.microsoft.com/zh-cn/ 囊括微软所有产品操作手册和技术简介。...原创 2018-06-25 12:19:55 · 607 阅读 · 0 评论 -
KeyValuePair 和 Dictionary 的关系
KeyValuePair 和 Dictionary 的关系1、KeyValuePair a、KeyValuePair 是一个结构体(struct); b、KeyValuePair 只包含一个Key、Value的键值对。2、Dictionary a、Dictionary 可以简单的看作是KeyValuePair 的集合; b、Dictionary 可以包含多个Key、Va...原创 2018-06-26 09:22:44 · 11398 阅读 · 0 评论 -
WPF的BitmapImage的文件无法释放及内存泄露的问题
相信用过WPF的BitmapImage的,都在用类似这样的代码来解决文件无法删除的问题!如果看看msdn上简单的描述,可以看到这样的说明:如果 StreamSource 和 UriSource 均设置,则忽略 StreamSource 值。如果要在创建 BitmapImage 后关闭流,请将 CacheOption 属性设置为 BitmapCacheOption.OnLoad。 默认 OnDema...转载 2018-07-05 15:51:45 · 3404 阅读 · 0 评论 -
LINQ 标准查询操作概述
转自:http://www.cnblogs.com/liqingwen/p/5801249.htmlLINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法。大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 IQueryable<T> 接口。标准查询运...转载 2018-11-20 14:41:25 · 238 阅读 · 0 评论 -
C#使用读写锁三行代码简单解决多线程并发写入文件时线程同步的问题
转自:https://www.cnblogs.com/Tench/p/CSharpSimpleFileWriteLock.html在开发程序的过程中,难免少不了写入错误日志这个关键功能。实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到日志文件。选择最后一种方法实现的时候,若对文件操作与线程同步不熟悉,问题就有可能出现了,因为同一...转载 2019-03-04 15:16:31 · 1070 阅读 · 0 评论 -
C#中override和overload的区别
重载应该叫overload,重写叫override;重载某个方法是在同一个类中发生的!重写是在子类中重写父类中的方法。1.override: 父类:public virtual string ToString(){return "a";} 子类:public override string ToString(){return "b";}2.o转载 2015-07-30 09:08:56 · 521 阅读 · 0 评论 -
反射
1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assem转载 2015-05-08 17:32:23 · 467 阅读 · 0 评论 -
在C#中.cs文件 .xaml文件 .config文件 .asax各是干什么的
.xaml 是微软规范xml语言,wpf和Silverlight,WP8,win8用到(微软主要用于移动领域方面).cs代码文件。.config是配置文件。也是xml语言。微软规范xml语言.asax是全局应用程序类用的。根据你提供的文件名看。是WEB程序。用Silverlight+WPF做的。.xaml是前台文件 .cs是.xaml后台类。.xmal是继承.cs里类。(这个代码就是后置原创 2015-08-21 11:23:37 · 4666 阅读 · 0 评论 -
C#全能速查宝典
C#全能速查宝典《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,每一个知识点都配有具体的示例,便于读者理解。 《C#全能速查宝典》所讲的知识点按照功能和字母进行排序,读者既可以按照转载 2015-05-20 09:11:55 · 1737 阅读 · 0 评论 -
c# byte[] 与string转化
string类型转成byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );反过来,byte[]转成string:string str = System.Text.Encoding.Default.GetString ( byteArray );其它编码方式的,如System转载 2015-08-28 15:01:17 · 812 阅读 · 0 评论 -
C# Serializable
C# SerializableSystem.SerializableAttribute串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化实例的成员。并行化是串行化的逆过程,数据从存储介质中读取出来转载 2015-07-31 10:01:05 · 409 阅读 · 0 评论 -
C#中标准Dispose模式的实现
摘要:C#程序中的Dispose方法,一旦被调用了该方法的对象,虽然还没有垃圾回收,但实际上已经不能再使用了。所以使用上要仔细考虑细节。 需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象; 非托管资源:不受CLR管理的对象,转载 2015-07-31 11:15:03 · 536 阅读 · 0 评论 -
C# Socket编程笔记
看到这个题目,是不是很眼熟?在博客园里搜下,保证会发现关于这个东东的文章实在是太多了~~~真得是没有写得必要,而且我也有点懒得去琢磨字句。(看到这,肯定得来个转折的了,不然就看不到下文了,不是吗)但是,为了自己下一篇要写的文章做参考,还是有必要先补充一下socket基础知识。 注意:如果你已经接触过socket,那就没什么必要耽误时间看下去了。另外,如果发现其中任何错误,欢迎直接转载 2015-07-31 10:53:44 · 413 阅读 · 0 评论 -
C#中的Finalize,Dispose,SuppressFinalize的实现和使用介绍
MSDN建议按照下面的模式实现IDisposable接口:public class Foo : IDisposable{ public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool转载 2015-07-31 11:26:16 · 5103 阅读 · 0 评论 -
C#中IList<T>与List<T>的区别感想
写代码时对:IList IList11 =new List ();List List11 =new List (); 有所疑惑,于是在网上搜索一下,很受启发,于是收藏下来,但对部分观点不敢苟同,用红色字体标明我的看法! 首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类转载 2015-07-30 09:22:40 · 1085 阅读 · 0 评论 -
C#中的throw
Throw会抛出/传递异常,通过在catch块里使用throw语句.可以改变产生的异常,比如我们可以抛出一个新的异常,throw语句有各种各样的,并且很有必要.例子我们首先看一下三个方法,分别叫做A,B,C,他们使用不同的throw语句。方法A使用了无参的throw语句。这可以被看作是rethrow(继续抛出)—他会抛出已经出现的同样的异常继续,方法B throw一个命名的异常转载 2015-07-29 08:54:55 · 3924 阅读 · 0 评论 -
杂谈异常处理try-catch-finally
1. 前言最近这段时间正开发一个店铺管理系统,这个项目定位于给中小型店铺使用的软件系统。简单的说,它处理商品的进货,销售,退货等功能。软件虽小,五脏俱全,里面涉及的技术跟大型应用软件其实差别也不大,其中有加密、数据访问、异常处理、日志、验证、ORM、依赖注入等。本篇文章主要介绍C#语言的异常处理方面的内容,其中包含的主要内容:什么是异常?异常的特点?异常处理的基础知识。转载 2015-07-29 09:09:27 · 459 阅读 · 0 评论 -
DriveInfo类查看磁盘信息
DriveInfo类查看磁盘信息 DriveInfo di = new DriveInfo(@"d:\"); this.Label1.Text = di.Name; //获取磁盘名称 this.Label2.Text =di.TotalFreeSpace.ToString(); //可用空闲空间总量 this.Label3.Text =di.TotalSiz原创 2015-07-28 11:24:28 · 765 阅读 · 0 评论 -
C#与JAVA的区别
C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢?本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多转载 2015-05-20 10:59:00 · 529 阅读 · 0 评论