Sim, é, pois permite que o servidor processe outras solicitações enquanto aguarda a conclusão da E/S, ou seja, você permite que o mesmo número de threads lide com mais solicitações.
Além disso, forçando a sincronia usando
.Result
ou .Wait()
é perigoso porque você encontrará impasses
se você não fizer isso direito. assíncrono significa apenas que o servidor pode usar o encadeamento para outra coisa intermediária; isso é amplamente transparente, ou seja, seu código não precisa se importar muito. Para fins práticos, basta chamar
await InsertOneAsync(...)
ou qualquer método de driver MongoDB que você esteja chamando. Assíncrono é um recurso bastante 'infeccioso':para fazer uso eficiente do recurso assíncrono, todo o seu código deve ser capaz de lidar com ele.