Sì, poiché consente al server di elaborare altre richieste mentre è in attesa del completamento dell'I/O, ovvero consenti allo stesso numero di thread di gestire più richieste.
Inoltre, forzare la sincronizzazione usando .Result
o .Wait()
è pericoloso perché incontrerai una situazione di stallo
se non lo fai bene.
asincrono significa solo che il server può utilizzare il thread per qualcos'altro nel mezzo; questo è in gran parte trasparente, ad es. al tuo codice non deve importare molto. Per scopi pratici, chiama semplicemente await InsertOneAsync(...)
o qualsiasi metodo del driver MongoDB che stai chiamando.
Async è una funzionalità piuttosto "contagiosa":per utilizzare in modo efficiente la funzionalità asincrona, tutto il tuo codice deve essere in grado di gestirla.