C#에서 비동기 작업이 어떻게 기다리고 있는지 이해하려고하는데 한 가지가 많이 혼란 스럽습니다. await 키워드를 사용하는 모든 메서드는 async로 표시되어야한다는 것을 알고 있습니다. 필자는 await 키워드가있는 행이 적중되면 해당 행 아래의 코드가 실행되지 않는다는 것을 이해합니다. 대기중인 라인에서 명령문을 수행하기 위해 비동기 조작이 시작되고 제어는 실행을 계속할 수있는 호출 메소드로 리턴됩니다.어떻게 C#에서 비동기 작업을 기다리고 있습니까
질문 1 :이 가정은 맞습니까? 아니면 await 키워드 아래의 코드가 여전히 실행됩니까?
두 번째로 서비스 메소드를 비동기로 호출하고 결과를 반환해야한다고 가정합니다. return 문은 await 키워드 아래에 있습니다.
질문 # 2 : 비동기 호출이 완료된 후 또는 그 전에 return 문이 언제 실행됩니까?
질문 # 3 : 해당 서비스 호출의 결과를 사용하고 비동기 작업이 도움이되지 않아 결과가 반환 될 때 호출하는 메소드가 손상되기를 원합니다. 나는 이것이 synchronus를 만드는 Result 속성을 사용하여 수행 할 수 있음을 이해한다. 그러나 DB 작업에서 비동기 사용은 실제로 대부분의 응용 프로그램에서 실제로 시간의 80 %를 차지합니다.
질문 4 : DB 작업과 함께 비동기를 사용하려면 어떻게해야합니까? 가능하고 권장 할 만한가?
질문 5 : scenraio가 비동기 작업을 유용하게 사용할 수있는 이유는 모든 API가 현재 이유없이 비동기 작업을하고있는 것 같습니다. 또는 비동기 연산을 사용하는 지점을 놓쳤습니까?
API가 이유없이 asyn 메서드를 만들고 있다고 말하면 메서드가 뭔가를 반환해야하고 계산이 완료 될 때까지 어떻게 리턴 할 수 있는지에 대한 호출은 여전히 의미가 차단되지 않습니다. 결과가 반환 될 때까지 쓸모 없을거야?
많은 질문을하고 있습니다. 단 하나 집중된 질문을하면 SO가 가장 잘 작동합니다. 두 가지 이상의 질문이있는 경우 별도로 게시하십시오. – svick
@svick 어떻게 든 혼란스러운 초보자를위한 아주 예의 바른 설명이 아닙니다. 어쨌든 그는 5 가지를 묻습니다.하지만 실제로는 비동기의 의미와 유용성에 초점을 맞추고 있습니다. IMO를 기다리고 있습니다. –
@Svick 나는 MDSN이 나를 혼란스럽게 만들고 내 마음 속에 많은 질문을 남겼습니다. 다른 사람이 같은 문제가 있다면 어쩌면이 스레드를보고 비동기 op를 더 잘 이해할 수 있습니다. 내 모든 질문은 하나의 주제와 관련이 있습니다. 5 가지 질문을 게시하고 누군가가 모두를 볼 수 있기를 희망하지 않습니다. –