Ich versuche async
/ await
in unseren Servicebus zu integrieren . Ich habe ein SingleThreadSynchronizationContext
auf diesem Beispiel basierendes http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx implementiert .
Und es funktioniert gut, bis auf eine Sache : TransactionScope
. Ich warte auf Sachen in der TransactionScope
und es bricht die TransactionScope
.
TransactionScope
scheint nicht gut mit dem async
/ zu spielen await
, sicherlich weil es Dinge im Thread mit speichert ThreadStaticAttribute
. Ich bekomme diese Ausnahme:
"TransactionScope ist falsch verschachtelt."
Ich habe versucht, TransactionScope
Daten vor dem Einreihen in die Warteschlange zu speichern und vor dem Ausführen wiederherzustellen, aber es scheint nichts zu ändern. Und TransactionScope
Code ist ein Chaos, daher ist es wirklich schwer zu verstehen, was dort vor sich geht.
Gibt es eine Möglichkeit, es zum Laufen zu bringen? Gibt es eine Alternative zu TransactionScope
?
SingleThreadSynchronizationContext
für jede oberste Ebene einen eigenen Thread TransactionScope
.