为了账号安全,请及时绑定邮箱和手机立即绑定

如何逃离异步任务

如何逃离异步任务

C#
慕工程0101907 2022-01-09 16:04:21
我目前正在编写一个不和谐的小项目,并利用异步功能。但是我在理解如何有效地逃避我的方法时遇到了一些麻烦。说我有这个方法:public async Task DoSomething(Item a, Person b){   if(b is NPC)   {     await DoFunction()   }   // Code to Handle Everything else}我的问题是,如何在第一次等待之后有效地离开该方法?有人告诉我在异步任务中使用返回是不好的做法。是否像使用有效的 Ifs 和 Elses 一样简单,而不是使用单数 ifs?这让我很困惑。
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超22个赞

最好和最简单的方法是简单地返回。每个方法都必须在某个时候返回。我不知道为什么以及如何可能是不好的做法。


查看完整回答
反对 回复 2022-01-09
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我会试试这个:


        if (b is NPC)

        {

            await Task.Run(() =>

            {

                return DoFunction();

            });

        }


查看完整回答
反对 回复 2022-01-09
?
慕斯王

TA贡献1864条经验 获得超2个赞

回归什么?DoSomething() 的返回还是 DoFunction() 的返回?由于 DoSomething() 是“异步任务”,你别无选择——你不能返回任何值。换句话说,这不是一个坏习惯,它甚至不会编译。如果您删除“async”,那么 DoSomething() 将不得不返回 Task,然后显然它将无法调用“await”。请记住,“异步”会更改方法返回值的语法


查看完整回答
反对 回复 2022-01-09
  • 3 回答
  • 0 关注
  • 236 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号