Estoy intentando integrarme async/ awaiten nuestro bus de servicio. Implementé un SingleThreadSynchronizationContextbasado 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 TransactionScopey se rompe el TransactionScope.
TransactionScopeno parece funcionar bien con async/ await, ciertamente porque almacena cosas en el hilo usando ThreadStaticAttribute. Obtengo esta excepción:
"TransactionScope anidado incorrectamente".
Intenté guardar TransactionScopedatos antes de poner en cola la tarea y restaurarla antes de ejecutarla, pero parece que no cambia nada. Y el TransactionScopecó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?
SingleThreadSynchronizationContextpara cada nivel superior TransactionScope.