task.yield的使用场景研究

本文探讨了Task.Yield的使用场景,包括在单独线程的大规模计算、防止UI线程卡顿的情况下的应用,并指出在WPF程序中可能有更优的解决方案。虽然Task.Yield提供了一种出让线程执行权的方式,但在实际应用中,它的使用场景较为有限,可能更多地体现在语法优化上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出让执行权:Task.Yield, Dispatcher.Yield - walterlv,毅仔的博客珠玉在前。同学们可以直接跳转过去看。

比较遗憾的是我没有在里面找到Task.Yield的合适的应用场景。关于Task.Yield的应用场景也是争论纷纷,可见这个东西必然很鸡肋。本文尝试了Task.Yield的几种使用场景,看看是否能够将代码变得更加优雅。

坐在MVP旁边狗尾续貂,诚惶诚恐。。


ReferenceSource里面看到Task.Yield方法会直接返回一个YieldAwaitable

如果你的代码是这么写

在这里插入图片描述

那么此时它将自身线程出让,然后从线程池中拿出一个线程继续执行后续的代码

那么问题来了,什么地方适合使用Task.Yield

1. 单独线程做大规模计算

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值