Estoy intentando integrarme async
/ await
en nuestro bus de servicio. Implementé un SingleThreadSynchronizationContext
basado en este ejemplo http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx .
Y funciona bien, excepto por una cosa: TransactionScope
. Espero cosas dentro del TransactionScope
y se rompe el TransactionScope
.
TransactionScope
no parece funcionar bien con async
/ await
, ciertamente porque almacena cosas en el hilo usando ThreadStaticAttribute
. Obtengo esta excepción:
"TransactionScope anidado incorrectamente".
Intenté guardar TransactionScope
datos antes de poner en cola la tarea y restaurarla antes de ejecutarla, pero parece que no cambia nada. Y el TransactionScope
código es un desastre, por lo que es muy difícil entender qué está pasando allí.
¿Hay alguna forma de hacerlo funcionar? ¿Existe alguna alternativa a TransactionScope
?
SingleThreadSynchronizationContext
para cada nivel superior TransactionScope
.