2016-09-02 2 views
0

여기에 방법입니다 :마지막에 기다린 메서드에 대한 호출이 이후에 아무 것도 없을 경우 메서드에 반환되지 않도록 최적화되어 있습니까?

async (a) => 
{ 
await DoSomethingForTheFirstTimeAsync(); 
await DoSomethingForTheSecondTimeAsync(); 
await DoSomethingForTheLastTimeAsync(); 
} 

질문은 "우리는 방법을 다시 얻을 것이다 마지막 호출이 작업의 완료 후?" 나는 그것이 필요한 상황을 보지 못한다.

+0

이전 컨텍스트로 돌아갈 필요가 없다면, 사용하지 마십시오 –

+1

제 이해는 여전히 반환하고 메서드를 끝냅니다. 왜 묻는거야? 당신이 짓고있는 앱에는 아무런 차이가 없어야합니다. 또한 무효 비동기 메서드의 사용 주위에이 게시물을 좀 봐 http://stackoverflow.com/questions/12144077/async-await-when-to-return-a-task-vs-void –

+0

@ MurrayFoxcroft 메서드는 로컬 루트를 유지합니다. 나는 그것에 정말로 문제가 없다. 궁금해서 일부 특정 최적화가있을 경우 대답을 찾을 수 없기 때문에 주로 묻습니다. –

답변

2

마지막 시나리오에서 예외를 throw하는 시나리오가 필요합니다. 호출하는 메소드의 컨텍스트에서 기다릴 것입니다.

메서드의 닫는 중괄호에 중단 점을 설정할 수 있습니다. 따라서 마지막 호출이 반환됩니다.

+0

또는 영구 컨텍스트의 사용을 강제로하지 않는 경우 다른 컨텍스트에 포함됩니다. 나는 그것에 대해 생각했다. 그러나 예외가 메서드의 내부에 던 졌는지 이미 메서드 외부에 던져져 있는지 여부는 별 문제가되지 않는다. –

관련 문제