c# 学习笔记
文章平均质量分 56
sophiemantela
个人邮箱:1457909046@qq.com
展开
-
Unable to locate the .NET SDK
.NET 由 runtime 与 the SDK.组成。 依据vs版本安装对应.netSDK原创 2024-05-10 09:57:38 · 408 阅读 · 0 评论 -
c# 获取源码路径与当前程序所在路径
【代码】c# 获取源码路径与当前程序所在路径。原创 2024-03-01 16:20:12 · 542 阅读 · 0 评论 -
【无标题】
.net开源项目榜单原创 2023-10-07 16:26:44 · 434 阅读 · 0 评论 -
C#预处理指令 #if、#else、 #endif、#define的使用
c# 预处理指令#if、#define原创 2023-01-31 16:10:08 · 2340 阅读 · 1 评论 -
正则表达处理文本
正则表达编辑文本原创 2022-12-02 16:40:41 · 230 阅读 · 0 评论 -
influxdb踩过的坑
influxDB注意事项原创 2022-11-08 10:30:49 · 1801 阅读 · 0 评论 -
influxDB学习笔记
influxdb 安装,常用命令等操作原创 2022-10-21 15:31:47 · 770 阅读 · 0 评论 -
c# stopwatch使用
【代码】c# stopwatch使用。原创 2022-09-08 13:29:05 · 2097 阅读 · 0 评论 -
System.BadImageFormatException: 试图加载格式不正确的程序。
System.BadImageFormatException: 试图加载格式不正确的程序。(异常来自 HRESULT:0x8007000B)于是,用ILSpy 工具,查看工控机上可以调用此dll的可执行文件。按照这个Architecture:x86的提示,重新设置项目。一顿操作后,在我的电脑上可以运行,部署到工控机上提示。重新编译项目,运行成功。原创 2022-09-07 14:34:49 · 6176 阅读 · 2 评论 -
Windows 弹出“应用程序中发生了未经处理的异常”
windows弹框异常,如何处理原创 2022-09-01 14:26:24 · 5048 阅读 · 0 评论 -
Datetime 时间差计算
需求分析:依据程序运行输出的日志,计算某个操作的耗时时间。解决方案: 根据日志打印的时间戳来统计某个操作的耗时的平均值,最大值等。代码如下。public class CDataInfo { /// <summary> /// 开始时间 /// </summary> public string descHead; /// <summary> /// 结束时间.原创 2022-02-09 16:22:39 · 316 阅读 · 0 评论 -
NPOI教程及使用
exampleNPOI example///////////读EXCEL文件 private void ReadExcel() { try { //读取excel 中的数据 IWorkbook workbook = WorkbookFactory.Create(dbName); ISheet sheet = workbook.原创 2021-07-15 16:49:21 · 1320 阅读 · 0 评论 -
DirectoryInfo.GetFiles 过滤文件名
获取指定路径下,指定类型的文件。 DirectoryInfo dir = new DirectoryInfo(path); var temp = dir.GetFiles("*.xls?").Select(o => o.Name).ToList();可以使用通配符: * 和? 但是不支持正则表达式。“*.xls?” 可以匹配以.xls与.xlsl结尾的excel文件。参考msdn...原创 2021-07-15 16:17:53 · 2117 阅读 · 0 评论 -
异步编程(三)----TPL模式
异步编程异步编程的三种模式TAP模式(Task-based Asynchronous Pattern )1. task 创建、运行并监控task 运行状态-2. 与APM模式比较3. 与EAP模式比较4. task任务取消5. task 并行编程6. async/await 使用APM模式(Asynchronous-Programming-Model)EAP模式(Event-based Asynchronous Pattern)异步编程的三种模式c#三种异步编程模式TAP模式(Task-based A原创 2021-02-25 17:31:31 · 1154 阅读 · 0 评论 -
c# List去重
需求 : 对List集合中的元素去重。实现: 有三种方式可以使用- 使用Linq中distinct()方法- 借助hashset- 使用for循环遍历,这种方法在数据量大时,运行速度比较慢代码示例使用distinct() //使用distinct() List<string> lst1 = new List<string>() { "as", "lio", "sdrf", "asd", "lio" }; var r.原创 2021-01-26 10:48:16 · 18662 阅读 · 1 评论 -
异步编程(二)----EAP模式
异步编程的三种模式c#异步编程Task-based Asynchronous Pattern (TAP).tsak 异步编程使用1, 当程序中有大量I/O操作(如:读写数据库、上传或下载数据、读取或写入文件)等操作时,可以考虑使用异步2. 当程序中耗时的操作时,可以使用task.run()方式,在后台线程中调用耗时方法。异步编程异步编程的三种模式二级目录APM模式TAP 模式EAP 模式三级目录异步编程的三种模式c#三种异步编程模式二级目录APM模式Asynchronous-Progr原创 2021-01-22 17:11:37 · 642 阅读 · 0 评论 -
异步编程(一)---APM模式
异步编程的三种模式c#异步编程Task-based Asynchronous Pattern (TAP).tsak 异步编程使用1, 当程序中有大量I/O操作(如:读写数据库、上传或下载数据、读取或写入文件)等操作时,可以考虑使用异步2. 当程序中耗时的操作时,可以使用task.run()方式,在后台线程中调用耗时方法。异步编程异步编程的三种模式二级目录APM模式TAP 模式EAP 模式三级目录异步编程的三种模式c#三种异步编程模式二级目录APM模式Asynchronous-Progr原创 2020-12-21 14:37:27 · 822 阅读 · 0 评论 -
c#给tcpclient connect()设置超时
使用委托beginInvoke()的轮询模式在调用beginInvoke时将新建一个线程异步执行,使用轮询模式,判断方式是否已执行完成,并判断其是否超时。缺点: 当超时时,无法abort在运行的线程。代码。https://stackoverflow.com/questions/27616370/how-can-i-add-timeout-to-this-code?noredirect=13.https://docs.microsoft.com/en-us/dotnet/standard..原创 2020-12-14 17:18:14 · 4867 阅读 · 0 评论 -
线程学习(四)Mutex使用
线程使用MutexMutex 用于线程同步,也可用进程间同步using System;using System.Threading;namespace Pattern03{ class Program { static int thread_num = 5;//线程数 static AutoResetEvent autoReset = new AutoResetEvent(false);//标记线程池中执行情况 stat...原创 2020-05-11 15:35:48 · 220 阅读 · 0 评论 -
线程学习(三) Thread Pool使用
- thread Pool使用AutoResetEvent使用在threadPool调用方法中,传入参数AutoResetEvent,当线程池中调用方法执行完成时,AutoResetEvent调用set() --通知等待线程。using System;using System.Threading;namespace Pattern03{ class Program { static void Main(string[] args) {...原创 2020-05-11 14:55:54 · 238 阅读 · 0 评论 -
线程学习(二)使用ReaderWirterLock
thread 使用ReaderWirterLocklock,monitor 实现的都是多个线程同时访问一个资源时,只允许一个线程访问。如果业务中存在”读取密集型“操作,允许多个线程同时读,只在写的时候才要给锁住对象可以提高读线程的吞吐量。ReaderWriterLock就是这样的锁。例如在数据库操作中,读的操作比写的操作多,这时候可考虑是使用 readerWriterLockusing System;using System.Threading;using System....原创 2020-05-11 11:15:58 · 227 阅读 · 0 评论 -
线程学习(一)thread 使用join
thread 使用joinusing System;using System.Threading;namespace Pattern03{ class Program { static void Main(string[] args) { Console.WriteLine($" 主线程:{Thread.CurrentThread.ManagedThreadId} is running."); ...原创 2020-05-11 10:09:47 · 312 阅读 · 0 评论 -
msdn变更
msdn变更c#代码示例,以及旧版的msdn相关文档微软已不再维护原来下载 cs2010sample的地址https://archive.msdn.microsoft.com/cs2010samples此地址已不提供下载。可以查看teambloghttps://docs.microsoft.com/en-us/teamblog/msdn-code-gallery-retired在这篇网...原创 2020-04-29 17:11:38 · 201 阅读 · 0 评论 -
异步编程 async与await使用
1. 使用async与await 异步调用方法。2 被async修饰的方法,其内部至少要有一个await 表达式。await 表达式之前的语句是同步执行await 表达式是异步执行,不阻塞调用线程,异步执行完成后,执行await 表达式后续部分。3. 可以使用cancellationTokenSource 与cancellationToken取消异步任务。4. 可以去掉注释代...原创 2020-04-18 17:16:28 · 250 阅读 · 0 评论 -
group by 使用
需求,sqlite数据库, 同一张表存在多个不同的db中, 按照表进行分类,并导出数据量最大的表。使用group by 对表进行分组,并取数量最大的,用于导出数据主要代码逻辑,实现CompareTo方法可参考max() namespace MTDataCheck{ class Program { static void Main(string[] ...原创 2020-04-18 14:10:40 · 191 阅读 · 0 评论 -
运行程序时, windows弹出提示:已停止工作
当运行程序时,windows 弹出:已停止对话框,很有可能是程序存在bug。点开详细信息,查看具体的问题签名模块,来排查问题,可以快速解决。原创 2020-04-18 13:23:17 · 3716 阅读 · 2 评论 -
委托与事件(三)
/*委托与事件的区别与联系An event is nothing but an encapsulated delegate.事件可以通知外部订阅此事件的类,委托也可以是实现;但是事件的触发必须由事件发布者来定义*/使用Action 调用事件。 namespace EventTest{ class Program { static void...原创 2020-04-15 17:25:59 · 143 阅读 · 0 评论 -
遍历指定目录下的文件夹与文件
1。 需求: 获取指定目录下所有文件夹名字2。 代码实现 public List<string> FindFolders(string path) { try { if (!Directory.Exists(path)) { ...原创 2020-04-03 15:28:58 · 660 阅读 · 0 评论 -
对百万级txt文件的数据,进行查重处理
需求1: 检查420万条数据中是否有重复的需求2: 比对A、B两个文件,其中A文件是B文件的一部分,找出A、B文件的差集。使用hashset 分别保存要比对的数据,然后求差集,主要代码如下using System;using System.Collections.Generic;using System.Linq;using System.Text;using Sys...原创 2020-03-24 17:33:37 · 1907 阅读 · 0 评论 -
c# 把DataTable中数据批量导入新的sqlite的db文件中
需求 : 使用sqlite数据库, 将文件A.db 中某张数据表的数据,备份到文件B.db中。解决方案:使用dataTableUpdate。不推荐可以使用事务进行批量处理。目的: 避免手动拼接大量insert into sql语句,直接将dataTable 作为参数,实现批量插入。主要代码逻辑,及调用方式如下。 //建表 string createSql = $"C...原创 2020-03-20 16:37:27 · 6121 阅读 · 2 评论 -
正则表达式匹配
需求:匹配{[(),(),(),(),(),()],[(),(),(),(),(),()],[(),(),(),(),(),()]}匹配其中的()中的数据。原创 2020-03-06 11:47:05 · 682 阅读 · 0 评论 -
c# Attribute使用
需求: 定义实体类,将数据库中需要的表字段,定义为类的属性,在创建Create Table 语句时,通过类自动获取表字段名称、表字段类型。使用c# 的特性与反射实现List item一、代码:先用Attribute定义Dbcolumn类 [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] p...原创 2020-02-29 19:29:19 · 708 阅读 · 0 评论 -
dateTime转12小时,24小时制字符串
自定义时间格式字符串DateTime.Now.ToString(“yyyy/MM/dd HH:mm:ss”)-----2019/12/31 14:24:51DateTime.Now.ToString(“yyyy/MM/dd hh:mm:ss”);–2019/12/31 02:24:51原创 2020-01-03 16:27:03 · 1401 阅读 · 0 评论 -
c#程序运行时,阻止电脑进入休眠
#####1。需求: 大数量数据上传时,有时数据还未上传完成,系统就进入休眠状态。如何保证在运行上传程序期间,系统不进入休眠状态。计算机休眠计算机进入睡眠后,进程会关闭.。c#阻止系统休眠c# 系统休眠调用...原创 2020-02-26 17:03:29 · 2905 阅读 · 0 评论 -
c# :base关键字调用构造函数
如果在类中定义了有参的构造函数,编译器就不会再生成无参的构造函数。此时若需要调用无参构造函数,需要在类中定义,否则编译器会报错:base 默认调用的是基类的构造函数,要保证其参数与基类构造函数一致。 默认情况下,派生类new 一个对象时,先去调用基类构造函数。编译器将首先基类的构造函数,再调用派生类的构造函数。,如果基类没有显示的构造函数,则调用其默认的无参构造函数。测试代码:usin...原创 2019-01-04 09:31:09 · 3460 阅读 · 0 评论 -
用Enum|随机指定颜色显示
在使用chart 控件时,批量添加series 时,为了区分可为不同的series 设置不同的颜色1。 可以在Enum设置不同的颜色public enum LineColor{red,green,blue}2. 设置颜色string s=Enum.GetName(typeof(LineColor), 2);//这里后面参数2是可以变化的,用于实现随机设置颜色。series.Co...原创 2018-11-26 17:06:16 · 389 阅读 · 0 评论 -
c# 线程池
线程池When you call the QueueUserWorkItem method to queue a method for execution on a thread pool thread.You do this by passing the method a WaitCallback delegate. The delegate has the signaturevoid W...原创 2018-10-19 14:02:14 · 6590 阅读 · 0 评论 -
c# 线程
线程入门1.1 创建与终止线程当一个进程被创建时,操作系统分配一个主线程执行代码,可以通过CurrentThread属性获取此线程的相关信息;相关链接:1下面代码演示创建两线程,一个线程调用静态方法,一个线程调用实例方法。当线程上执行方法返回时,线程就终止了。using System;using System.Threading;namespace ThreadTest12{...原创 2018-10-15 10:53:22 · 167 阅读 · 0 评论 -
sqliteExpert 打开加密数据库
1 sqliteExpert Personal 5 无法打开加密的数据库。 百度找到了解决方案: 原文链接 然后到sqlite 官网下载SQLite.Interop.dll,在search栏 没有找到此dll下载地址2 在sqlite官网的FAQ页面搜索到此dll,可以看到 好像没有什么有用的信息 在下载页面下载相关版本的dll,sqlite-netFx40-binary-b...原创 2018-08-24 17:36:02 · 10146 阅读 · 1 评论 -
异步编程--回调模式
异步编程 如果委托对象在调用列表中只有一个方法(引用方法),在调用委托类中的BeginInvoke方法时,它开始在一个独立的线程上执行引用方法,并且立即返回到原始线程。原始线程可以继续,而引用方法会在线程池中的线程中执行。回调模式: 一旦原始线程发起了异步方法,它就自己管自己,不再考虑同步。当异步方法调用结束后,系统直接调用用户自定义的方法(回调方法)处理结果。BeginInvoke的...原创 2018-08-09 17:10:50 · 1928 阅读 · 0 评论