C# 直接调用async Task方法而不出现waring

33 篇文章 1 订阅

一般来说,直接调用一个async Task的异步方法会出现波浪线(提示在方法前面加await的warning)。

class Program
{

    private static async Task doSomethingAsync()
    {
        await Task.Run(()=>{
            // 做一些耗时的事情.
        });
    }

    static void Main()
    {
        doSomethingAsync(); // 这里会出现波浪线,提示需要awiat
    }
}

但是如果在doSomethingAsync()异步方法前面增加awiat关键字,则更加严重,提示出错,提示需要在Main()方法之前添加async,搞得有点烦人。

那如何才可以不出现warning提示,又保持async Task异步方法的签名和Main()方法签名不做任何改变?

方法是有的,这个方法就是额外再申明一个Task的delegate:

delegate Task funcasync();

 然后,定义一个funcasync的委托变量,用这个委托变量去调用async Task函数:

    static void Main()
    {
        funcasync MyAsync = doSomethingAsync;
        NyAsync(); // 这里不再出现波浪线. 一切OK。
    }

这个时候func()不会出现波浪线,调用也仍然是异步方式调用,没任何问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值