Я пытаюсь интегрировать 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?