Я пытаюсь интегрировать async
/await
в нашу служебную шину.
Я реализовал SingleThreadSynchronizationContext
на основе этого примера http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx.
И он отлично работает, за исключением одного: TransactionScope
. Я ожидаю вещи внутри TransactionScope
, и он разбивает TransactionScope
.
TransactionScope
не кажется приятным с async
/await
, конечно, потому что он сохраняет вещи в потоке с помощью ThreadStaticAttribute
. Я получаю это исключение:
"TransactionScope неправильно вложен.".
Я попытался сохранить данные TransactionScope
перед очередью задачи и восстановить ее перед запуском, но это, похоже, не изменяет ничего. И TransactionScope
код беспорядок, поэтому очень сложно понять, что там происходит.
Есть ли способ заставить его работать? Есть ли альтернатива TransactionScope
?