Saya mencoba untuk mengintegrasikan async/ awaitke dalam bus layanan kami. Saya menerapkan SingleThreadSynchronizationContextberdasarkan contoh ini http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx .
Dan bekerja dengan baik, kecuali untuk satu hal: TransactionScope. Saya menunggu hal-hal di dalam TransactionScopedan itu merusak TransactionScope.
TransactionScopesepertinya tidak cocok dengan async/ await, tentu saja karena ia menyimpan sesuatu di utas menggunakan ThreadStaticAttribute. Saya mendapatkan pengecualian ini:
"TransactionScope salah bertumpuk.".
Saya mencoba menyimpan TransactionScopedata sebelum mengantri tugas dan memulihkannya sebelum menjalankannya tetapi tampaknya tidak mengubah apa pun. Dan TransactionScopekode itu berantakan, jadi sangat sulit untuk memahami apa yang terjadi di sana.
Apakah ada cara untuk membuatnya berhasil? Apakah ada alternatif lain TransactionScope?
SingleThreadSynchronizationContextuntuk setiap level teratas TransactionScope.