使用“async”和返回类型非泛型“任务”的方法的奇怪定义?

时间:2017-05-31 19:01:59

标签: c#

下面定义的方法不能返回任何内容。那么它是如何适合的 进入正常语法,这种方法必须返回“任务”。 因此,删除“async”时,下面的方法将无法编译。

static async Task MyAsyncMethod() { }

当您使用以下方法调用方法时

await MyAsyncMethod();

“await”应该在等待对象上调用,但这里是返回 type是“struct Void”,这是不可等待的

1 个答案:

答案 0 :(得分:2)

你可以

public async Task DoAsync()
{
    // do anything synchron here
    // await other Task
}

public Task DoAsync()
{
    // do anything synchron here
    return Task.CompletedTask;
}

public Task DoAsync()
{
    // do anything synchron here
    return Task.FromResult( false );
}