事后等不及了

Zuz*_*zlx -2 c# task async-await

如何修复此任务/等待代码?我基本上在调用一个返回的方法TaskAwaiting它以后。首先,它说了Awaited task returns no value它所做的(无论如何对我来说)。然后它说它不能将void转换为int。怎么来的?提前致谢。

class Program
    {
        static async void Main(string[] args)
        {

            var tsk = First();
            int mynumb = await tsk;
            return;

        }
        static async Task<int> First()
        {
            return 2;  
        }


    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Jam*_*ees 7

变量类型不正确。

更改为此:

Task<int> tsk = First();
Run Code Online (Sandbox Code Playgroud)

或只使用var关键字

var tsk = First();
Run Code Online (Sandbox Code Playgroud)

要删除警告,您需要使First()方法返回Task<int>如下所示的内容

static Task<int> First()
{
    return Task.FromResult(2);
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码看来,这一切都不是必须异步的,因此,在这种情况下,您可能会浪费时间。

  • 当方法定义为“async”时,您可以执行“return 2;”。仅当删除“async”时,“Task.FormResult”才有效。 (2认同)