
C#
文章平均质量分 61
小哈龙
一颗勇往直前的心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微软.net与net core
.NET”和“.NET Core”是微软开发的两个不同阶段的运行时平台,后来合并为统一的“.NET(现代 .NET)”。原创 2025-06-17 11:59:22 · 574 阅读 · 0 评论 -
c# WaitSleepJoin状态的线程如何自动恢复
要让处于使用或:用于lock语句块中,通过唤醒等待的线程。使用或:线程等待这些事件的信号来恢复。使用:线程会在指定时间后自动恢复执行。使用Task.Delay:异步任务会在指定时间后自动恢复。通常,现代 C# 开发推荐使用Task和模式来避免复杂的线程管理。原创 2024-12-26 16:58:59 · 658 阅读 · 0 评论 -
c#多线程之生产者-消费者模型
是 C# 中实现生产者-消费者模式的理想工具。它是线程安全的,支持阻塞操作,且可以容纳多个生产者和消费者。通过的Add和Take方法,生产者和消费者可以安全地进行数据交换而无需担心并发问题。使用多个生产者和消费者线程时,会自动处理队列的同步和线程间协调。原创 2024-12-26 15:34:09 · 806 阅读 · 0 评论 -
c++ 类似与c# 线程 AutoResetEvent 和 ManualResetEvent的实现
可以通过和一个布尔标志来模拟,调用Wait()会让线程等待信号,Set()会唤醒一个线程并自动重置信号状态。可以通过和来模拟,Set()会保持信号状态,直到显式调用Reset()重置状态。这些 C++ 代码示例演示了如何利用和std::mutex来实现类似于 C# 中的和的功能。原创 2024-12-26 15:27:53 · 543 阅读 · 0 评论 -
c# 线程 AutoResetEvent 的Set()函数多次调用
的Set()方法多次调用并不会导致多个线程同时被唤醒。它每次调用时,最多只会唤醒一个线程。信号会在唤醒后自动重置为无信号状态,除非下次调用Set()。原创 2024-12-26 14:46:12 · 715 阅读 · 0 评论 -
c#异步编程(async/await)
c# sync/await原创 2024-11-26 09:50:33 · 829 阅读 · 0 评论 -
c++与c# 重载运算符
重载运算符原创 2024-11-18 15:16:49 · 407 阅读 · 0 评论 -
C# 泛型详解(泛型类,方法,接口,委托,约束,反射 )
先看一段介绍泛型(Generic),是将不确定的类型预先定义下来的一种C#高级语法,我们在使用一个类,接口或者方法前,不知道用户将来传什么类型,或者我们写的类,接口或方法相同的代码可以服务不同的类型,就可以定义为泛型。这会大大简化我们的代码结构,同时让后期维护变得容易。转载 2024-10-16 14:12:25 · 857 阅读 · 0 评论 -
c# sqlsugar 批量查询
上述代码示例摘自百度AI回答,其中有两点值得点出。原创 2024-10-16 14:01:11 · 839 阅读 · 0 评论 -
c#线程间操作无效,从不是创建控件的线程访问
这个错误通常发生在尝试从非UI线程(非主线程)访问或修改Windows窗体应用程序中的UI元素时。Windows窗体不是线程安全的,因此它有一个称为控件的UI元素只能从创建它的线程(通常是主线程)访问。尝试从另一个线程更新UI会引发一个InvalidOperationException,并提示“从不是创建控件的线程访问它”。转载 2024-07-29 17:50:08 · 1089 阅读 · 0 评论 -
C# HTTP POST(System.Net.WebException:请求已中止:请求已被取消)
最近在使用c# http post请求时,遇见了这种异常,大概异常提示如下。原创 2024-06-27 10:00:05 · 1524 阅读 · 0 评论 -
C#多线程——Thread睡眠、中断、合并、暂停与恢复、终止
如果一个线程处于阻塞状态(如调用了Sleep()、Join()等阻塞方法以及可中断通道的I/O操作后的阻塞),则在线程状态为WaitSleepJoin状态时,就会在阻塞方法调用处抛出ThreadInterruptException异常,并且在抛出异常后将线程状态设置为其他状态,从而线程从阻塞状态醒过来,并在结束线程前让程序员有足够的时间来处理中断请求。然而,应用程序不会检测到这种情形。1.取消终止线程的请求,并恢复线程,继续执行ResetAbort后面的语句,然后执行catch块之 后的语句。转载 2024-06-03 16:04:40 · 2710 阅读 · 0 评论 -
c# 线程 AutoResetEvent 和 ManualResetEvent
此时,调用 `WaitOne` 方法时,如果 AutoResetEvent 处于无信号状态,则线程将被阻塞,直到调用 `Set` 方法将其置为有信号状态。这样就会又很多个线程等待同一个信号,由于AutoResetEvent是自动恢复无信号的,所以只有一个等待线程会被唤醒并继续执行,那这一个线程肯定是最先调用WaitOnce的地方,因为一旦调用了WaitOnce并通过了,AutoResetEvent自动恢复无信号。其他的当然得继续等咯。信号同步的原理就是等待信号,有信号状态直接过,无信号就等。转载 2024-05-28 11:02:56 · 268 阅读 · 0 评论 -
C#中字符串与字节数组的转换方式
本文介绍了C#中字符串与字节数组的转换方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。转载 2023-10-12 09:31:34 · 3011 阅读 · 0 评论 -
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口信息
剩下的我们需要其他各种方法用于获取窗口的其他属性。枚举所有窗口仅需要使用到。,其中需要定义一个委托。作为传入参数的类型。转载 2023-09-20 14:04:28 · 1869 阅读 · 0 评论 -
C# SqlSugar框架的学习使用
最近有个开发项目准备启动,由于要求的开发周期较短,所以准备用个C#的框架,原本最初考虑用成熟的EF框架,但是觉得那个框架也太重了,就在网上找找了别的,无意间发现了SqlSugar的框架。简单试了下,发现真是的方便,入门也简单。稳定性和技术支持, 虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决。高性能 ,不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化。转载 2023-08-24 11:34:46 · 423 阅读 · 0 评论 -
C# 图片与Base64码的相互转化问题(代码详解)
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。转载 2023-08-24 11:09:50 · 4111 阅读 · 0 评论 -
Win11系统软件无法拖拽发送文件的解决方法
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。转载 2023-03-02 10:02:58 · 7277 阅读 · 0 评论 -
C#实现定时器的几种方案
System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中 的Timer控件,内部使用API SetTimer实现的。这个是本人经过测试的,如果你注释掉这两句,定时器会不断的执行Execute方法,如果Execute执行的是一个很耗时的方法,会导致方法未执行完毕,定时器又启动了一个线程来执行Execute方法。计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用,适用于单线程环境,转载 2023-03-01 15:48:50 · 3568 阅读 · 0 评论 -
C#操作SQLite数据库
SQLite是一个开源、免费的小型RDBMS(关系型数据库),能独立运行、无服务器、零配置、支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准。本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。2.3 操作SQLite Database的C#帮助类SQLite Helper。C#下SQLite操作驱动dll下载:System.Data.SQLite。2、C#操作SQLite Database。1、SQLite介绍。转载 2023-02-06 16:28:23 · 10651 阅读 · 0 评论 -
c#离线安装NuGet包
在开发c#程序时,有时会用到第三方库,可以在VS中从NuGet直接下载,但是这是在开发环境联网的情况下,如果开发环境处于无网络连接的时候,那应该如何安装NuGet包呢,解决方案如下。原创 2022-10-10 15:09:24 · 10137 阅读 · 0 评论 -
c# log4日志配置文件
【代码】c# log4日志配置文件。原创 2023-01-31 14:09:00 · 641 阅读 · 0 评论 -
C#组件系列——又一款Excel处理神器Spire.XLS(一)
Spire.XLS是E-iceblue开发的一套基于企业级的专业Office文档处理的组件之一,全称Spire.Office for .NET。旗下有Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCode等多款专业组件,为各种Office文档在程序处理上提供了很大的方便,官方为各种功能提供了大量的在线api,简化了使用组件的难度。组件使用时不需要本地Office组件的支持。转载 2022-10-27 10:22:18 · 4334 阅读 · 0 评论 -
C#组件系列——又一款Excel处理神器Spire.XLS(二)
至此,组件的一些基础功能介绍完毕。当然,这并不是全部,只是博主选的一些觉得或许有用的功能,更多功能可以参考官网文档帮助文档 | 全面丰富的在线文档,助您快速了解如何使用产品当然,如果本文能够帮到你,还是希望园友们帮忙推荐,博主下次继续努力!懒得安分 - 博客园。转载 2022-10-27 10:19:07 · 7157 阅读 · 0 评论 -
C#Office.Interop.Excel.dll读写表格
C#Office.Interop.Excel.dll读写表格。转载 2022-10-11 15:03:51 · 985 阅读 · 0 评论 -
C#如何实现读写ini文件
【代码】C#如何实现读写ini文件。转载 2022-10-11 10:17:05 · 283 阅读 · 0 评论 -
C#自动引用Debug | Release版本的dll
存放路径 解决方案+lib 文件夹下,Debug存放Debug文件,Release目录存放Release文件文本格式打开.csproj工程文件,按下面方法修改修改前:修改后:总结: 将Debug改为 $(Configuration)即可原创 2022-09-26 17:44:53 · 924 阅读 · 0 评论 -
C# 条件编译 (#if 和 Conditional)
(Define constants) 而在将 C# 代码编译到 dll 的编译环节,这个叫做 “转载 2022-09-22 10:54:17 · 2235 阅读 · 0 评论 -
c#自定义事件
在VC++的mfc可以自定义消息(WM_USER+n)来定义自己的消息,通过SendMessage等发送消息的函数向指定窗口发送消息,然后在被发送的窗口消息处理函数中处理消息(即消息的响应),此处有一个弊端,发送的自定义消息必须是发给窗口的,接收对象只能是窗口2.QT中自定义事件(信号)原创 2022-09-20 10:52:49 · 2227 阅读 · 0 评论 -
c#使用log4日志库
在c#使用的日志库有很多种,在nuget包中包含很多,log4在c++中也有使用,感觉有些熟悉感,因此选择log4日志库。原创 2022-08-23 18:23:21 · 2724 阅读 · 0 评论 -
C#常见容器ArrayList、List、HashSet、Hashtable 、Dictionary、Stack、Queue
命名空间ArrayList:是一个使用大小会根据需要动态增加的数组,可以存储任意类型的数据,但是ArrayList存储的都是Object类型,很多时候在存取时需要强制类型转换,引起装箱和拆箱的操作,可能会影响效率。List泛型集合列表:用于存储某一种特定类型的数据,存储的数据可以重复,并且存储的数据是有序的,可以通过下标[]获取。用法在一定程度上比ArrayList更灵活、高效,可以说是最常用的一种容器。......转载 2022-08-09 10:30:06 · 1943 阅读 · 0 评论 -
C#往文件中追加文本内容信息
C#往文件中追加文本内容信息转载 2022-06-28 15:45:42 · 1097 阅读 · 0 评论 -
c# string与c++ std::string的互相转换
本文转载自:C#DLL托管c++ (CLI) String^ 到 std::string 的相互转化_成魔的羔羊的博客-CSDN博客当使用C++/CLI包装C++本地代码时,常常需要将System::String转换为std::string或者char*以调用native C++函数。.net环境中的字符串是unicode的,占2个字节,而很多native C++函数都没有考虑unicode,这种转换不仅仅是2字节转1字节,同时也涉及到字符集的转换。...转载 2022-06-27 14:32:43 · 4912 阅读 · 0 评论 -
c++调用c#的dll
1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。 2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持(/clr)”。 3、在相同的窗格中,确保将“MFC的使用”设置为“在共享DLL中使用MFC”。 4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库/Zi”(而不是“/ZI”)。 5、在“配置属性”下,选转载 2022-06-27 11:35:57 · 4639 阅读 · 1 评论 -
C# Console.WriteLine()函数中{}输出格式详解
格式项都采用如下形式:{index[,alignment][:formatString]} 其中"index"指索引占位符,这个肯定都知道;",alignment"按字面意思显然是对齐方式,以","为标记;":formatString"就是对输出格式的限定,以":"为标记。 alignment:可选,是一个带符号的整数,指示首选的格式化转载 2017-10-25 16:37:25 · 16025 阅读 · 0 评论 -
谈C#中的Delegate
引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理。这两天,我再度翻阅了一些关于Delegate的资料,并开始正式整理这个C#中著名的特性。本文将由浅入深的谈一下Delegate这个特性。一.Delegate是什么? Delegate中文翻译为“委托”。Msdn中对转载 2017-11-08 16:57:40 · 13886 阅读 · 0 评论 -
c#的dllimport使用方法详解
DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息DllImport属性应用于方法,要求最少要提供包含入口点的dll的名称。D转载 2017-11-07 11:19:32 · 11286 阅读 · 0 评论 -
Http get与pos
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个...转载 2017-09-27 15:44:53 · 1931 阅读 · 2 评论 -
Json的序列化与反序列化
序列化:就是将字符串集合原创 2017-09-26 17:45:26 · 2285 阅读 · 0 评论 -
C#如何运行外部程序(打开可执行程序):ShellExcute和Process
最近的任务用到C#来调用C++内核程序,也就是C++编译运行后生成的.exe文件。网搜了一下C#中运行外部程序大致有两种方法,在此稍作总结:(1)使用API函数ShellExcute 添加引用 using System.Runtime.InteropServices; public enum ShowWindowCommands : in转载 2017-09-13 10:57:31 · 6971 阅读 · 1 评论