在哪里放置“等待”?

时间:2019-01-23 05:01:22

标签: c# async-await

这是一类有1种方法的

public class ApiService
{
    public async Task StartAsync()
    {
        await _webHost.StartAsync();
    }
}

现在尝试像下面这样调用上面的类/方法,

public static async Task Main(string[] args)
    {

        HostFactory.Run(
        configuration =>
        {
            configuration.Service<ApiService>(
                service =>
                {
                    service.ConstructUsing(x => new ApiService());
                    service.WhenStarted(x => x.StartAsync());
                });

            configuration.RunAsLocalSystem();
        });
    }

如果我像这样放置await,则会出现错误,在此处将异步/等待位置放在哪里?

service.WhenStarted(x => await x.StartAsync());

1 个答案:

答案 0 :(得分:2)

我不知道WhenStarted()的签名,并且由于我在文档中找不到该签名,因此可能会起作用,也可能不会起作用。通常,如果您需要await通话,则还必须将通话标记为async

service.WhenStarted(async (x) => await x.StartAsync());