나는이 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()
기다리지 않고 호출 하면 Visual Studio에서 " 이 호출 을 기다리지 않기 때문에 호출이 완료되기 전에 현재 메서드가 계속 실행됩니다 "경고가 발생합니다. 해당 경고 페이지에는 다음이 표시됩니다.
비동기 호출이 완료되기를 기다리지 않고 호출 된 메소드가 예외를 발생시키지 않는 경우에만 경고를 억제하는 것을 고려해야합니다 .
전화가 끝날 때까지 기다리지 않겠다고 확신합니다. 시간이 필요 없거나 시간이 없습니다. 그러나 전화로 예외 가 발생할 수 있습니다 .
나는이 문제에 몇 번 걸려 넘어졌으며 일반적인 해결책이 있어야하는 일반적인 문제라고 확신합니다.
결과를 기다리지 않고 어떻게 비동기 메소드를 안전하게 호출합니까?
최신 정보:
결과를 기다리는 사람들에게 이것은 웹 서비스 (ASP.NET 웹 API)의 웹 요청에 응답하는 코드입니다. UI 컨텍스트에서 대기하면 UI 스레드가 사용 가능한 상태로 유지되지만 웹 요청 호출에서 대기하면 요청에 응답하기 전에 작업이 완료 될 때까지 대기하므로 아무런 이유없이 응답 시간이 늘어납니다.
MyAsyncMethod().Wait()