Obtenha o TransactionScope para trabalhar com async / await
Estou tentando integrarasync
/await
em nosso barramento de serviço. Eu implementei umSingleThreadSynchronizationContext
com base neste exemplohttp://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx.
E funciona bem, exceto por uma coisa:TransactionScope
. Eu aguardo por coisas dentro doTransactionScope
e quebrar oTransactionScope
.
TransactionScope
não parece brincar com oasync
/await
, certamente porque armazena coisas no segmento usandoThreadStaticAttribute
. Eu recebo esta exceção:
"TransactionScope aninhado incorretamente."
Eu tentei salvarTransactionScope
dados antes de enfileirar a tarefa e restaurá-lo antes de executá-lo, mas não parece mudar nada. ETransactionScope
código é uma bagunça, então é muito difícil entender o que está acontecendo lá.
Existe uma maneira de fazer isso funcionar? Existe alguma alternativa paraTransactionScope
?