Come ho scoperto di recente, fare un await
quando non c'è un contesto di sincronizzazione può causare il codice dopo l'attesa di essere eseguito su un thread diverso.Come posso ottenere la continuazione dopo un'attesa da eseguire sullo stesso thread?
Attualmente sto riscontrando problemi con un comportamento strano in un componente aggiuntivo di Office VSTO, che penso sia probabilmente il risultato di questo comportamento. Durante l'elaborazione degli eventi generati dall'applicazione di Office, non è presente alcun contesto di sincronizzazione (a meno che non crei un modulo, che creerà un contesto di sincronizzazione).
La mia domanda è se creare un modulo è il modo migliore/più efficace per garantire che disponga di un contesto di sincronizzazione o se esiste un modo più semplice per farlo.
Non sarebbe più semplice non utilizzare "attendere" in questo caso? Se l'API che stai usando è solo asincrona, puoi ottenerla usando 'Result' o' Wait() '. – svick
@svick: Credo che quello che stai dicendo sia che se voglio che l'atteso torni sullo stesso thread, allora è un comportamento effettivamente "sincrono". Hmmm ... sì, immagino lo sia. *Sospiro*. Sono un po 'perso con questa roba, a dire il vero. –