C#UI线程和线程池线程之间通讯taskscheduler.FromCurrentSynchronizationContext()

本文详细介绍了如何在C#的UI线程和线程池线程之间进行通讯,重点讲解了TaskScheduler对象的作用。通过示例代码展示了TaskScheduler.Default导致的错误以及如何使用TaskScheduler.FromCurrentSynchronizationContext()正确处理UI对象的更新,同时提到了死锁情况的避免。
摘要由CSDN通过智能技术生成

如何在UI线程和线程池线程之间通讯。一般来说,UI线程拥有的对象,其他线程是无法操作的。但是.Net有一个很重要的抽象对象——TaskScheduler(任务调度器)。它协调着不同任务(线程)的运行,使得线程池中的线程有了操作UI线程的可能。在我以前不知道OberservableCollection和WPF开发的时候,都是要么使用 Invoke方法,要么就是使用TaskScheduler。这篇文章我们就主要介绍一下TaskScheduler这个对象。本篇的例子依然来源于《C#多线程编程实例》(其实我这个系列的都是来自于这本书的例子)

亲测成功案例A

dd974db188cd41c68dd32205f8e236eb.jpg

 

建立wpf应用,编写如下函数:

[c#] view plain copy 在CODE上查看代码片派生到我的代码片Task《string> TaskMethod(TaskScheduler scheduler)

{

Task delay = Task.Delay(5000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

unity学院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值