我有一个async
方法,它不返回任何数据:
public async Task MyAsyncMethod()
{
// do some stuff async, don't return any data
}
我从另一个返回一些数据的方法调用这个:
public string GetStringData()
{
MyAsyncMethod(); // this generates a warning and swallows exceptions
return "hello world";
}
调用MyAsyncMethod()
而不等待它会导致“__abc1”;在visual studio警告。在警告页面上,它写道:
你应该考虑抑制警告只有如果你确定你不想等待异步调用完成被调用的方法不会引发任何异常。
我确定我不想等待调用完成;我不需要,也没有时间。但是调用可能引发异常。
我遇到过几次这个问题,我相信这是一个普遍的问题,必须有一个共同的解决方案。
我如何安全地调用异步方法而不等待结果?
对于那些建议我只是等待结果的人,这是对我们的web服务(ASP。NET Web API)。在UI上下文中等待保持UI线程空闲,但在web请求调用中等待任务完成后才响应请求,因此毫无理由地增加响应时间。