C#多线程
文章平均质量分 50
陕西龙人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
异步中实现同步机制
第三种是AsyncAutoResetEvent,AsyncAutoResetEvent 是一个异步版本的自动重置事件,常用于异步编程中的线程同步。第一种方式是应用社区中的AsyncLock 的异步锁机制,在异步编程中常用的工具,用于控制对共享资源的并发访问。这种场景也是经常碰到的场景,例如,两个异步相互协作完成一项任务,一个任务让多个异步任务顺序执行等等吧。上面代码中的10 个任务会串行执行,而不是并行,每个任务需要等待前一个任务释放锁。在异步中不要用lock,这一定要记住。下面是一个生产者消费者示例。原创 2025-09-29 09:28:23 · 174 阅读 · 0 评论 -
同步方法中调用异步方法
变动的地方是增加ConfigureAwait(false)的调用,false代表是可以由其它线程来执行,true则是必须由原来的线程回到这里执行。在同步方法中调用异步方法,对于有返回结果的需要Result,没有返回结果的需要wait。以上是调用有返回结果的异步方法,下面的示例是调用无返回值的方法。3.但原始线程被 .Result 阻塞了,无法处理回调。先看一下特殊代码,下面的代码会死锁,知道为什么吗?结果:任务永远无法完成,线程永远被阻塞。在调用方法后增加wait方法的调用。上述代码执行会卡死,原创 2025-09-26 09:28:17 · 189 阅读 · 0 评论 -
生产者消费者模式
增加调用过程,启动2个线程,一个生产者,一个消费者,生产者生产完,等待100ms让消费者消费完集合中的产品,生产者生产完后线程就自动结束了,消费者由于用的是While、在不停的执行,所以需要应用线程中断Interrupt。生产者消费者模式是开发工作中经常用到的多线程方式,之前总是靠信号量控制,本次则的示例则用用C#自带的线程安全集合BlockingCollection,此集合的添加或获取是互斥的。增加生产者如下代码,向结合中增加20个产品,每增加一个等待100ms。原创 2025-09-25 09:03:11 · 191 阅读 · 0 评论 -
线程的取消
异步任务的取消原创 2025-09-23 09:54:34 · 128 阅读 · 0 评论 -
关于线程的例子
下面是两个线程,每个线程循环10000次,结果应该是20000,运行一下程序,是不是想要的结果。第二种,直接用.ne提供的框架中的Interlocked。运行后结果总是1w多点,而不是2W,下面给出2中解决方案。原创 2025-07-21 18:22:15 · 162 阅读 · 0 评论 -
如何用DispatcherTimer提高运行总时间的精确度
我用DispatcherTimer,间隔100/5 = 20ms运行一次Tick事件,经测试从开始第一次到最后一次运行结束经常性的在150ms左右。有两个矩形,矩形间有一条线连接,在仿真的时候要求有一个三角箭头从线的一端移动道另一端。//当前应该在第几步。为解决这个问题,用了多个方案,最终下面的方案时间最短,大概在105ms左右。1.让DispatcherTimer间隔时间变的很短,我这里用了1ms。原创 2025-07-21 17:27:22 · 223 阅读 · 0 评论 -
线程(一):基本概念
2.在多线程环境下,原子操作能够保证数据的一致性和可靠性,避免出现竟态和数据竞争的问题。线程安全:多个线程访问共享资源时,对共享资源的访问不会导致数据不一致或不可预期的结果。1.在执行过程中不会被中断的操作,不可分割,要么完全执行,要么完全不执行。2.确保线程按照特定的顺序执行,避免竞争和数据不一致的问题。1.用于协调和控制多线程之间执行顺序和互斥访问共享资源。2.多个不同任务希望同时执行,互不干扰。1.批量重复任务希望同时执行。原创 2025-07-20 16:41:34 · 438 阅读 · 0 评论 -
C#多线程
线程的启动,延迟执行,线程等待,线程的异常捕获及线程的取消原创 2025-02-18 11:29:33 · 458 阅读 · 0 评论
分享