异步方法不等于多线程

本文探讨了异步方法并不等同于多线程的概念。通过示例说明即使使用Task.Run(),异步代码也不会自动在新线程执行,除非将其放入线程中。总结强调了只有将异步代码放入线程,才可能在新线程执行。
摘要由CSDN通过智能技术生成

目录

一、异步、线程

 二、Task.Run()

 三、总结


一、异步、线程

异步方法的代码并不会在新线程中执行,除非把异步代码块放入新线程中执行。

运行结果:

  

由此可见,线程没有发生切换。

 二、Task.Run()

1.把要执行的代码以委托的形式传递给 Task.Run(),它有很多重载方法,把要执行的代码放在委托里面就好了,

这样就能从线程池中取出一个线程执行我们的委托:

await Task.Run(()=>{

要执行的代码      //耗时代码操作可以用 return 返回值

})

因为 Run() 方法的返回值是 Task ,所以用 await 做返回值接受,一般有 Task 都用 await 。

因为写了有返回值,且返回值的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值