- 博客(76)
- 资源 (5)
- 收藏
- 关注
转载 优化C#程序的四十七种方法
1、使用非内存资源,它必须有一个终结器,垃圾收集器在完成没有终结其的内存对象后,会将实现了终结器对象的添加到终结队列中,然后垃圾收集器会启动一个新的线程来运行这些对象上的终结器,这种防御性的变成方式是因为如果用户忘记了调用Dispose()方法,垃圾回收器总是会调用终结器方法的,这样可以避免出现非托管的内存资源不被释放引起内存泄漏的问题;释放所有的托管资源;1、互操作有三个方面的代价数据在托管堆和非托管堆之间的列举成本,托管代码和非托管代码之间切换的成本,对开发人员来说与混合环境打交道的开发工作;...
2022-07-19 15:08:08
534
原创 C# 删除文件夹
//删除文件夹 public bool DeleteDir(string file) { try { //去除文件夹和子文件的只读属性 //去除文件夹的只读属性 System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file); fileInfo.A...
2021-07-01 11:53:49
528
原创 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
2195
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
1820
原创 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
142
原创 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
282
转载 .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
570
转载 【转】C# 使用消息队列,包括远程访问
可以使用MSMQ来实现C#和C++端打印日志,C#写一个服务取出消息打印到本地,参考如下出处:http://www.cnblogs.com/80X86/p/5557801.html近期做一个小的功能需求,用到了队列,用的时候出了很多问题,现在总结一下,希望能对有需要的人提供帮助。 我的需求很简单,就是多个客户端连接到我的一个小型的数据转发服务器上,开始使用的是Socket通信实现这个功能,一旦数据服务器接收到来自不同客户端发来的消息,就对这些消息进行处理(我这里是将数据接收到后再转发到另...
2020-05-11 11:27:15
585
原创 正则表达式,判断是否为float uint int
正则表达式,判断是否为float uint int string sRule = ""; switch (InputType) { case ValueType.floatType: sRule = @"^[+-]?\d+(\.\d)?$";//floa...
2020-04-23 13:22:15
1318
转载 Thrift 总结 转载
Thrift 总结 转载分类总结https://www.cnblogs.com/zhangweizhong/category/1006119.html
2020-04-22 15:29:35
160
原创 Net Framework的源码传送门
Net Framework的源码链接https://referencesource.microsoft.com/#mscorlib/system/threading/interlocked.cs,52be0cc9b3954ae9
2020-03-24 11:02:54
157
原创 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
208
原创 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
422
原创 C# 内存结构 ,以及大对象堆的管理,大对象堆引发OutOfMemory异常
C#的内存分类由于C#是一种托管语言,它的垃圾回收机制(GC)是由.net平台负责的,加之C#语言并没有指针,所以我们在使用过程中极少会考虑到内存使用状况以及项目在运行过程中是如何进行内存管理的。但是,C#只是在内存管理方面对程序员隐藏了,并不代表它不涉及这些东西,甚至其内部内存管理或许比自己手动管理更加复杂。参考前面文章中的内存分类——四分类,本文会依据自己的理解,从这四个分类来说明。...
2020-01-16 13:39:01
2871
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
812
原创 C# const和readonly的区别分 深度分析
const是静态常量,const是编译时常量;readonly是动态常量,是运行时常量,const较高效,readonly较灵活。1.访问方式const默认是静态的,只能由类型来访问,不能与static同时使用;readonly默认是非静态的,由实例对象来访问,可以显示使用static定义为静态成员;2.修饰内容const只能应用在值类型和string类型上,其他引用类型常量只...
2020-01-14 11:23:22
439
原创 C# 学习宝地
这是一篇学习C#的风水宝地https://www.runoob.com/csharp/csharp-reflection.html
2020-01-08 11:47:25
127
转载 C# 特性(Attribute)
转载:https://www.runoob.com/csharp/csharp-reflection.htmlC#反射(Reflection)反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以...
2020-01-08 11:46:12
371
转载 C#反射
原文地址:https://www.cnblogs.com/xuan666/articles/10643585.html一、反射的概念:反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。一般使用:工厂类,通过反射创建类的实例,...
2020-01-07 16:20:51
121
原创 杀进程demo 代码和脚本
脚本.batTASKKILL /F /IM calc.exe代码private void KillProcess() { List<string> killProcessList = new List<string>() { "calc" }; Process[] pProcess; ...
2019-12-10 14:34:31
304
原创 C# 创建文件夹 读写TXT文件
写内容应该使用UTF8格式,不然读出来可能会是乱码 string curTimePath = tmpPath + @"\" + DateTime.Now.ToString("yyyyMMddHHmmss"); if (!Directory.Exists(curTimePath)) { ...
2019-12-05 09:36:20
802
原创 MVVM模式下,线程与UI同步绑定集合的一种方式
MVVM模式下,想要在ViewModel下去更新一个绑定在UI的集合,如果在线程中去更新这个集合,可以使用Application.Current.Dispatcher.Invoke。也可以使用一下这种方式。我使用SynchronizationContext 来进行同步,代码如下,每次更新这个集合都会同步到UI线程中去执行,看起来很nice。SynchronizationContext 简单...
2019-11-06 12:32:04
896
转载 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
536
原创 捕获程序异常的事件
在程序初始化的时候加入捕获异常的事件,可以在程序出现异常的时候保证程序不崩溃,同时收集异常信息System.Windows.Application.Current.DispatcherUnhandledException += App_OnDispatcherUnhandledException;AppDomain.CurrentDomain.UnhandledException +=...
2019-10-08 16:57:25
183
原创 WPF窗体一直置顶的一种方案
最近遇到一个需要将WPF窗体一直置顶的需求试验了一种方案,记录一下wpf窗体的句柄获取方式,在window窗体load事件中获取窗体句柄,供下面调用windowAPI使用 IntPtr handle; private void Window_Loaded(object sender, RoutedEventArgs e) { ...
2019-09-24 11:28:47
4419
原创 TreeView第二级项太多,展开特别缓慢的一种解决办法,虚拟化技术
虚拟化技术第一次接触虚拟化技术,是因为自定了TreeView控件,当子节点有特别多的内容,比如4000条的时候,展开子节点的时候大概要等待20多秒(跟计算机配置相关),这样效果无法忍受,以前只是见过虚拟化技术,但都是默认的,结果自己写的这个控件却没有。只能上学习了。引用以为高人的总结如下:WPF 中的 VirtualizingStackPanel 只支持一层数据的 UIV。(这一点好像在 ...
2019-09-10 10:46:07
2058
1
原创 ListView最后一列右键点击取消当前选择行
思路是1、最后一列始终填满剩余<ListViewx:Name="mListView" SizeChanged="mListView_SizeChanged"> private void mListView_SizeChanged(object sender, SizeChangedEventArgs e) { dou...
2019-04-26 09:22:10
343
原创 WCF断开连接后释放资源
WCF服务端短时间内连接了超过400个客户端,再有新的连接请求则不再接收,报错1min连接超时。解决思路是不用的连接,释放掉,不要占用资源。释放的方法如下,var deathService = m_Service as ICommunicationObject; try { ...
2019-04-25 13:33:38
1428
原创 C#强制垃圾回收
C#强制垃圾回收 GC.Collect(); GC.WaitForPendingFinalizers();当知道自己写的代码临时new了大数据,并且函数走完不需要了,赶紧强制回收一下...
2019-04-12 16:46:34
2922
转载 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
661
转载 WCF实例模式和对象生命周期
转:https://www.cnblogs.com/millen/archive/2009/06/20/1507479.html本文出发点:通过阅读本文,您可以了解以下知识:WCF中有哪几种对象实例模式? 几种实例模式下对象的生命周期? 各种实例模式的应用场合? 使用不同的实例模式,需要注意的有哪些? 代码不骗人,用一个小范例来看看不同实例模式的区别?本文适合的读者...
2019-04-03 11:25:09
197
转载 [WinAPI] 获取窗口句柄的几种方法
转:http://www.cnblogs.com/zjutlitao/p/3889900.html1、使用FindWindow函数获取窗口句柄示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小,并且移动窗口到指定位置。我们想获得酷我音乐盒的窗口句柄并移动它,该怎么办呢?首先打开VC或者VS里面tool中的SPY++点击查找窗口如下:PS:把那个靶心似的的东西...
2019-03-05 16:43:56
16054
原创 获取文件路径
获取文件路径 class Program { static void Main(string[] args) { //获取当前运行程序的目录 string fileDir = Environment.CurrentDirectory; Console.WriteLine("当前...
2019-01-23 10:01:56
354
原创 32位进程如何使用大于2G的共享内存
32位进程无论打开还是创建共享内存,都不能超过2G,否则会报〖8〗-存储空间不足,无法处理此命令。那么如何在32位进程使用超过2G的共享内存呢?答案是使用64位进程开启共享内存,没有2G的限制,也没有4G的限制,放心大胆的开。然后32位进程再打开这部分共享内存,前面说不能打开超过2G,这里我们就把64位进程开启的这一片共享内存分成很多个小块,例如每一块10M一共410块,这样差不多4G...
2018-12-26 10:38:55
832
ILSpy_Master_2.4.0.1963_Binaries.zip
2020-01-15
System.Windows.Interactivity.zip
2020-01-14
EntityFramework.6.2.0.zip
2020-01-14
LightInject库
2020-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人