自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (5)
  • 收藏
  • 关注

原创 HPROSE PRC通讯

一种开源的rpc通讯框架,跨语音,跨平台

2023-02-15 17:52:46 136

原创 C#把一片非托管内存 拷贝到 另一片非托管内存

C#非托管内存之间的拷贝

2022-08-11 10:22:50 1093

转载 优化C#程序的四十七种方法

1、使用非内存资源,它必须有一个终结器,垃圾收集器在完成没有终结其的内存对象后,会将实现了终结器对象的添加到终结队列中,然后垃圾收集器会启动一个新的线程来运行这些对象上的终结器,这种防御性的变成方式是因为如果用户忘记了调用Dispose()方法,垃圾回收器总是会调用终结器方法的,这样可以避免出现非托管的内存资源不被释放引起内存泄漏的问题;释放所有的托管资源;1、互操作有三个方面的代价数据在托管堆和非托管堆之间的列举成本,托管代码和非托管代码之间切换的成本,对开发人员来说与混合环境打交道的开发工作;...

2022-07-19 15:08:08 425

原创 C# 删除文件夹

//删除文件夹 public bool DeleteDir(string file) { try { //去除文件夹和子文件的只读属性 //去除文件夹的只读属性 System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file); fileInfo.A...

2021-07-01 11:53:49 469

原创 C# 读写TIF文件,OpenCV存一个16位Tif文件

//把读取的16位tif数据,存入short数组中,要进行高低位相加 short[] retShortArray; private void ReadTiff(string fileName) { List<byte[]> listData = new List<byte[]>(); Tiff tif = Tiff.Open(fileName, "r"); if (tif == null) return;...

2020-12-20 10:49:35 1859 2

转载 转 C#程序中将图片转换为byte数组,并将byte数组转换为图片

转https://www.cnblogs.com/baofengxue00/p/4720852.htmlC#程序中将图片转换为byte数组,并将byte数组转换为图片/// <summary>/// 将图片以二进制流/// </summary>/// <param name="path"></param>/// <returns></returns>public byte[] SaveImage(String path

2020-09-01 17:30:47 1756

原创 C#的反射好文链接

C#的反射(一)https://www.cnblogs.com/dcz2015/p/11058193.html

2020-05-29 08:33:40 102

原创 WCF一些文章链接

随笔分类 - WCF学习https://www.cnblogs.com/TianFang/category/442039.htmlWCF实例模式和对象生命周期https://www.cnblogs.com/millen/archive/2009/06/20/1507479.html跟我一起学WCF(7)——WCF数据契约与序列化详解https://www.cnblogs.com/zhili/p/WCFDataContract.htmlWCF 学习之数据契约(Data...

2020-05-29 08:27:30 104

原创 BeyondCompare到期问题

C:\Users\User\AppData\Roaming\ScooterSoftware\BeyondCompare3BCState.xml删除<TCheckForUpdatesState><BuildValue="18981"/><LastCheckedValue="2020-03-1917:24:14"/></TCheckForUpdates...

2020-05-19 11:22:52 241

转载 .h(头文件) .lib(库文件) .dll(动态链接库文件)之间的关系和作用的区分

转载https://www.cnblogs.com/azbane/p/7364060.html.h(头文件) .lib(库文件) .dll(动态链接库文件) 之间的关系和作用的区分.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了(放在Debug文件夹里)。在开发和调试阶段,当然最好都有。.h .

2020-05-19 09:49:31 415

转载 【转】C# 使用消息队列,包括远程访问

可以使用MSMQ来实现C#和C++端打印日志,C#写一个服务取出消息打印到本地,参考如下出处:http://www.cnblogs.com/80X86/p/5557801.html近期做一个小的功能需求,用到了队列,用的时候出了很多问题,现在总结一下,希望能对有需要的人提供帮助。 我的需求很简单,就是多个客户端连接到我的一个小型的数据转发服务器上,开始使用的是Socket通信实现这个功能,一旦数据服务器接收到来自不同客户端发来的消息,就对这些消息进行处理(我这里是将数据接收到后再转发到另...

2020-05-11 11:27:15 484

原创 正则表达式,判断是否为float uint int

正则表达式,判断是否为float uint int string sRule = ""; switch (InputType) { case ValueType.floatType: sRule = @"^[+-]?\d+(\.\d)?$";//floa...

2020-04-23 13:22:15 1227

转载 Thrift 总结  转载

Thrift 总结 转载分类总结https://www.cnblogs.com/zhangweizhong/category/1006119.html

2020-04-22 15:29:35 130

原创 Net Framework的源码传送门

Net Framework的源码链接https://referencesource.microsoft.com/#mscorlib/system/threading/interlocked.cs,52be0cc9b3954ae9

2020-03-24 11:02:54 125

原创 C# 多线程Task Await文章链接

C#当中使用async和await WaitAllhttps://www.cnblogs.com/dcz2015/p/11004585.htmlC# 彻底搞懂async/awaithttps://www.cnblogs.com/zhaoshujie/p/11192036.htmlTask WaitAll和WaitAny源码https://blog.csdn.ne...

2020-03-24 10:06:20 149

原创 C++不重新分配内存,进行字符串反转

//转字符数组 char input2[] = "power"; char * begin = input2; char * end = input2 + strlen(input2) - 1; while (begin < end) { *begin = *begin ^ *end; *end = *begin ^ ...

2020-03-09 17:22:09 378

原创 C++学习

C++学习https://www.runoob.com/cplusplus/cpp-references.html

2020-02-29 19:42:56 107

原创 C# 一些知识链接

静态构造函数https://www.cnblogs.com/liuqiyun/p/9880985.html

2020-02-23 19:34:48 84

转载 C# 各种设计模式的实现

参考https://www.cnblogs.com/JiYF/p/6896458.html

2020-01-17 10:32:32 277

原创 C# 内存结构 ,以及大对象堆的管理,大对象堆引发OutOfMemory异常

C#的内存分类由于C#是一种托管语言,它的垃圾回收机制(GC)是由.net平台负责的,加之C#语言并没有指针,所以我们在使用过程中极少会考虑到内存使用状况以及项目在运行过程中是如何进行内存管理的。但是,C#只是在内存管理方面对程序员隐藏了,并不代表它不涉及这些东西,甚至其内部内存管理或许比自己手动管理更加复杂。参考前面文章中的内存分类——四分类,本文会依据自己的理解,从这四个分类来说明。...

2020-01-16 13:39:01 2517 1

转载 大对象堆引起的OutOfMemoryException原理和解决办法

该问题的英文讨论贴:https://github.com/dotnet/coreclr/issues/555========C#:.NET陷阱之五:奇怪的OutOfMemoryException----大对象堆引起的问题与对策http://blog.sina.com.cn/s/blog_47642c6e0102vh0v.html我们在开发过程中曾经遇到过一个奇怪的问题:当软件加载了很...

2020-01-16 11:09:32 729

原创 C# const和readonly的区别分 深度分析

const是静态常量,const是编译时常量;readonly是动态常量,是运行时常量,const较高效,readonly较灵活。1.访问方式const默认是静态的,只能由类型来访问,不能与static同时使用;readonly默认是非静态的,由实例对象来访问,可以显示使用static定义为静态成员;2.修饰内容const只能应用在值类型和string类型上,其他引用类型常量只...

2020-01-14 11:23:22 372

原创 C# 学习宝地

这是一篇学习C#的风水宝地https://www.runoob.com/csharp/csharp-reflection.html

2020-01-08 11:47:25 97

转载 C# 特性(Attribute)

转载:https://www.runoob.com/csharp/csharp-reflection.htmlC#反射(Reflection)反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以...

2020-01-08 11:46:12 270

转载 C#反射

原文地址:https://www.cnblogs.com/xuan666/articles/10643585.html一、反射的概念:反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。一般使用:工厂类,通过反射创建类的实例,...

2020-01-07 16:20:51 93

原创 杀进程demo 代码和脚本

脚本.batTASKKILL /F /IM calc.exe代码private void KillProcess() { List<string> killProcessList = new List<string>() { "calc" }; Process[] pProcess; ...

2019-12-10 14:34:31 260

原创 C# 创建文件夹 读写TXT文件

写内容应该使用UTF8格式,不然读出来可能会是乱码 string curTimePath = tmpPath + @"\" + DateTime.Now.ToString("yyyyMMddHHmmss"); if (!Directory.Exists(curTimePath)) { ...

2019-12-05 09:36:20 735

原创 MVVM模式下,线程与UI同步绑定集合的一种方式

MVVM模式下,想要在ViewModel下去更新一个绑定在UI的集合,如果在线程中去更新这个集合,可以使用Application.Current.Dispatcher.Invoke。也可以使用一下这种方式。我使用SynchronizationContext 来进行同步,代码如下,每次更新这个集合都会同步到UI线程中去执行,看起来很nice。SynchronizationContext 简单...

2019-11-06 12:32:04 765

转载 WPF: 使用CommandManager.InvalidateRequerySuggested手动更新Command状态

转https://www.cnblogs.com/zjoch/p/3647236.htmlWPF: 使用CommandManager.InvalidateRequerySuggested手动更新Command状态WPF判断命令(Command)是否能够执行是通过ICommand.CanExecute事件,在实际程序中路由命令一般是通过CommandBinding来使命令得到实际操作代码,但...

2019-10-31 13:03:56 484

原创 捕获程序异常的事件

在程序初始化的时候加入捕获异常的事件,可以在程序出现异常的时候保证程序不崩溃,同时收集异常信息System.Windows.Application.Current.DispatcherUnhandledException += App_OnDispatcherUnhandledException;AppDomain.CurrentDomain.UnhandledException +=...

2019-10-08 16:57:25 149

原创 WPF窗体一直置顶的一种方案

最近遇到一个需要将WPF窗体一直置顶的需求试验了一种方案,记录一下wpf窗体的句柄获取方式,在window窗体load事件中获取窗体句柄,供下面调用windowAPI使用 IntPtr handle; private void Window_Loaded(object sender, RoutedEventArgs e) { ...

2019-09-24 11:28:47 3707

原创 TreeView第二级项太多,展开特别缓慢的一种解决办法,虚拟化技术

虚拟化技术第一次接触虚拟化技术,是因为自定了TreeView控件,当子节点有特别多的内容,比如4000条的时候,展开子节点的时候大概要等待20多秒(跟计算机配置相关),这样效果无法忍受,以前只是见过虚拟化技术,但都是默认的,结果自己写的这个控件却没有。只能上学习了。引用以为高人的总结如下:WPF 中的 VirtualizingStackPanel 只支持一层数据的 UIV。(这一点好像在 ...

2019-09-10 10:46:07 1750 1

原创 ListView最后一列右键点击取消当前选择行

思路是1、最后一列始终填满剩余<ListViewx:Name="mListView" SizeChanged="mListView_SizeChanged"> private void mListView_SizeChanged(object sender, SizeChangedEventArgs e) { dou...

2019-04-26 09:22:10 303

原创 WCF断开连接后释放资源

WCF服务端短时间内连接了超过400个客户端,再有新的连接请求则不再接收,报错1min连接超时。解决思路是不用的连接,释放掉,不要占用资源。释放的方法如下,var deathService = m_Service as ICommunicationObject; try { ...

2019-04-25 13:33:38 1261

原创 C#强制垃圾回收

C#强制垃圾回收 GC.Collect(); GC.WaitForPendingFinalizers();当知道自己写的代码临时new了大数据,并且函数走完不需要了,赶紧强制回收一下...

2019-04-12 16:46:34 2796

转载 WCF异常处理

转:https://www.cnblogs.com/millen/archive/2009/06/20/1507481.html本文目的通过阅读本文,您能理解以下的知识1) WCF中存在哪几种异常处理方式?2) 各种异常处理所适用的应用场合?3) WCF中常见的异常类型?4) 代码不骗人,用示例来演示效果,加深印象本文适合的读者本文适合WCF的初学者,但要求对WC...

2019-04-03 11:25:59 544

转载 WCF实例模式和对象生命周期

转:https://www.cnblogs.com/millen/archive/2009/06/20/1507479.html本文出发点:通过阅读本文,您可以了解以下知识:WCF中有哪几种对象实例模式? 几种实例模式下对象的生命周期? 各种实例模式的应用场合? 使用不同的实例模式,需要注意的有哪些? 代码不骗人,用一个小范例来看看不同实例模式的区别?本文适合的读者...

2019-04-03 11:25:09 161

转载 [WinAPI] 获取窗口句柄的几种方法

转:http://www.cnblogs.com/zjutlitao/p/3889900.html1、使用FindWindow函数获取窗口句柄示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小,并且移动窗口到指定位置。我们想获得酷我音乐盒的窗口句柄并移动它,该怎么办呢?首先打开VC或者VS里面tool中的SPY++点击查找窗口如下:PS:把那个靶心似的的东西...

2019-03-05 16:43:56 15700

原创 获取文件路径

获取文件路径 class Program    {        static void Main(string[] args)        {            //获取当前运行程序的目录            string fileDir = Environment.CurrentDirectory;            Console.WriteLine("当前...

2019-01-23 10:01:56 321

原创 32位进程如何使用大于2G的共享内存

32位进程无论打开还是创建共享内存,都不能超过2G,否则会报〖8〗-存储空间不足,无法处理此命令。那么如何在32位进程使用超过2G的共享内存呢?答案是使用64位进程开启共享内存,没有2G的限制,也没有4G的限制,放心大胆的开。然后32位进程再打开这部分共享内存,前面说不能打开超过2G,这里我们就把64位进程开启的这一片共享内存分成很多个小块,例如每一块10M一共410块,这样差不多4G...

2018-12-26 10:38:55 724

foreachfile2txt.zip

C#遍历文件夹打开文件,并存为txt文件,也可以把存完的txt文件在恢复为原始文件名称,如果存在同名文件则删除后再保存

2020-05-21

ILSpy_Master_2.4.0.1963_Binaries.zip

ILspy是一个开源的.net反编译软件,使用十分方便。 之所以开发ILspy是因为Red Gate宣布免费版的.NET Reflector(同样是反编译软件)将会在2011年2月停止。 所以爱好免费软件的开发者们转而开发自己的反编译软件。于是ILspy就因运而生了。 需求环境 ILspy需要在电脑上安装.NET Framework 4.0.

2020-01-15

System.Windows.Interactivity.zip

WPF 使用System.Windows.Interactivity交互事件 可以把关闭窗体,失去焦点,获取焦点,控件的各种路由事件绑定到ViewMode

2020-01-14

EntityFramework.6.2.0.zip

Entity Framework简称EF,与Asp.net关系与Ado.net关系。 Entity Framework是ado.net中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。 ORM:object relation mapping 是基于关系型数据库的数据储备,实现一个模拟的面向对象的数据访问接口,理想情况下,基于这样一个面向对象的接口,持久化一个oo对象应该不需要了解任何关系型数据库存储数据的实现细节。 类似的轻量级的orm框架,dapper,patapoct

2020-01-14

LightInject库

依赖注入封装库,可以非常容易进行依赖翻转,更好的组织系统的初始化过程,它的容器可以注册单例,可以注册类,使用的时候可以直接取容器中取实例,或者创建一个实例

2020-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除