Como descubrí recientemente a mi costa, hacer un await
cuando no hay contexto de sincronización puede dar como resultado el código después de que se espera que se ejecute en un hilo diferente.¿Cómo puedo obtener la continuación después de una espera para ejecutar en el mismo hilo?
Actualmente estoy teniendo problemas de comportamiento extraño en un complemento de oficina VSTO, lo que creo que es posiblemente el resultado de este comportamiento. Al procesar eventos generados por la aplicación de Office, no existe un contexto de sincronización en su lugar (a menos que cree un formulario, lo que creará un contexto de sincronización).
Mi pregunta es si la creación de un formulario es la mejor/la manera más eficiente de garantizar que tengo un contexto de sincronización, o si hay una manera más simple de hacerlo.
¿No sería más fácil no usar 'await' en este caso? Si la API que está utilizando es solo asincrónica, puede lograr eso utilizando el 'Resultado' de' Task' o 'Wait()'. – svick
@svick: Supongo que lo que estás diciendo es que si quiero esperar para volver al mismo hilo, entonces ese es un comportamiento efectivamente "sincrónico". Hmmm ... sí, creo que es. *Suspiro*. Estoy un poco perdido con estas cosas, para ser sincero. –