代码之家  ›  专栏  ›  技术社区  ›  user584018

“等待”放在哪里?

  •  -1
  • user584018  · 技术社区  · 5 年前

    这里有一个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 回复  |  直到 5 年前
        1
  •  2
  •   Erik Philips    5 年前

    我不知道的签名 WhenStarted() 由于我在文件中找不到,这可能会起作用,也可能不起作用。一般来说,如果你需要 await 您还必须将呼叫标记为 async .

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