
多线程
我又何必慨叹
毕业于郑州大学软件工程专业,目前从事Windows桌面软件、Linux服务器应用开发,熟悉C#、C/C++、Pyhton等编程语言
展开
-
C#程序中很多ntdll.dll、clr.dll的线程
VS中调试缓慢,如下图。原创 2023-09-26 16:28:38 · 594 阅读 · 0 评论 -
同步对象的使用
原创 2021-03-23 14:45:12 · 158 阅读 · 0 评论 -
C#匿名函数之委托、Func、Action、Predicate、Lambda
在写代码的过程中,并不是任何时候都会把一个代码块放在一个命名函数中,而且有可能的情况是:函数太多或者已有相似名称的函数,已经不知道要怎么去命名为好;又或者给中间函数命名后意义不大,基本不会复用......所以匿名函数不失为一种合适的选择。 匿名函数的实现,有多种方式。1.委托 是一种引用类型,本质是方法指针。msdn介绍:委托 个人较常用的场景,在创建线程时:Thread t0 = new Thread(new ThreadStart(delegate { C...原创 2020-11-19 11:43:07 · 748 阅读 · 0 评论 -
扒一扒C#BackgroundWorker使用中遇到的坑
C#中BackgroundWorker作为.NETFramework封装好的线程类,上手简单,可根据需要为其实例的DoWork、ProgressChanged、RunWorkerCompleted指定相应的委托:分别为DoWorkEventHandler、ProgressChangedEventHandler、RunWorkerCompletedEventHandler,然后再调用该实例的RunWorkerAsync(object argument==null)方法即可在单独线程(意思是非调用线程的另外线程原创 2020-10-10 16:06:45 · 3414 阅读 · 0 评论 -
ReaderWriterLock.UpgradeToWriterLock注意点
注解当线程调用UpgradeToWriterLock读取器锁时,无论锁计数如何,线程都将进入写入器锁队列的末尾。因此,在向请求升级的线程授予了写入方锁之前,其他线程可能会写入资源。重要在调用方法的线程UpgradeToWriterLock可以重新获取读取器锁之前,不会引发超时异常。如果没有其他线程正在等待编写器锁,则会立即发生这种情况。但是,如果另一个线程排队等候写入器锁,则调用此方法的线程将UpgradeToWriterLock无法重新获取读取器锁,直到所有当前读取器都释放...原创 2020-09-14 19:10:49 · 173 阅读 · 0 评论 -
多线程WPF程序界面运行一段时间后卡死,后台代码仍在继续运行
1.场景 使用以太网接收单片机发送的PHY电流的数据包,并在基于WPF实现的C#应用程序上进行分析、显示。上位机采用LiveCharts第三方控件用以显示数据(问题所在),电流采样频率为2ms,每采集20条电流发送一包数据。2.代码实现 显示:通过向动态库的事件指针上添加回调函数,并在回调函数内将接收到的数据包存储至Queue,并在后台线程中循环取出队列中已有的数据包,并将其中的数据(电流、时间戳等)添加至已绑定LiveCharts对应的折线图序列,; 数据保存:队列中的数...原创 2020-07-09 16:03:23 · 3444 阅读 · 7 评论