Como aguarda o trabalho assíncrono em c # [fechado]

Eu estou tentando entender como esperar o trabalho assíncrono em c # e uma coisa está me confundindo muito. Eu entendo que qualquer método que use await keyword deve ser marcado com async. Meu entendimento é que quando uma linha com a palavra-chave await é atingida, o código abaixo dessa linha não é executado. Uma operação assíncrona é iniciada para executar a instrução na linha await e o controle é retornado para o método de chamada que pode prosseguir com a execução.

Pergunta 1: esta suposição é correta ou o código abaixo da palavra-chave await ainda é executado?

Em segundo lugar, suponha que eu chamei um método de serviço como assíncrono e preciso retornar seu resultado. A instrução de retorno está abaixo da palavra-chave await.

Pergunta # 2: Quando a declaração de retorno é atingida, após a conclusão da chamada assíncrona ou antes dela?

Pergunta # 3: Eu quero usar o resultado dessa chamada de serviço e a operação assíncrona não ajudará porque eu quero que o método de chamada seja atingido quando o resultado for retornado. Eu entendo isso pode ser feito usando a propriedade Result, que faz a chamada synchronus. Mas, então, qual é o uso de assíncrono em operações de banco de dados, pois são elas que realmente ocupam 80% do tempo na maioria dos aplicativos.

Pergunta # 4: Como posso usar async com operações de banco de dados? É possível e recomendado?

Pergunta # 5: Em que cenário as operações de assíncrono serão úteis, parece que cada API está apenas fazendo operações assíncronas agora sem uma razão? ou eu perdi o ponto de usar operações assíncronas?

O que quero dizer ao dizer que api está fazendo métodos assíncronos sem uma razão é porque os métodos têm que retornar alguma coisa e até que o cálculo seja feito, como eles podem retornar? Em essência, a chamada ainda estará bloqueando no sentido de que será inútil até resultado é retornado?

questionAnswers(2)

yourAnswerToTheQuestion