Sí, lo es, ya que permite que el servidor procese otras solicitudes mientras espera que se complete la E/S, es decir, permite que la misma cantidad de subprocesos maneje más solicitudes.
Además, forzar la sincronización usando .Result
o .Wait()
es peligroso porque se encontrará con puntos muertos
si no lo haces bien.
asíncrono solo significa que el servidor puede usar el hilo para algo más en el medio; esto es en gran medida transparente, es decir, su código no tiene que preocuparse mucho. Para propósitos prácticos, simplemente llame a await InsertOneAsync(...)
o cualquier método de controlador de MongoDB al que esté llamando.
Async es una función bastante 'infecciosa':para hacer un uso eficiente de la función asíncrona, todo su código debe poder manejarla.