Sto cercando di integrare async
/ await
nel nostro bus di servizio. Ho implementato un SingleThreadSynchronizationContext
basato su questo esempio http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx .
E funziona bene, tranne per una cosa: TransactionScope
. Aspetto roba dentro TransactionScope
e rompa il file TransactionScope
.
TransactionScope
non sembra giocare bene con async
/ await
, certamente perché memorizza le cose nel thread usando ThreadStaticAttribute
. Ottengo questa eccezione:
"TransactionScope nidificato in modo errato.".
Ho provato a salvare i TransactionScope
dati prima di accodare l'attività e ripristinarla prima di eseguirla, ma non sembra cambiare nulla. E il TransactionScope
codice è un casino, quindi è davvero difficile capire cosa sta succedendo lì.
C'è un modo per farlo funzionare? C'è qualche alternativa a TransactionScope
?
SingleThreadSynchronizationContext
per ogni livello superiore TransactionScope
.