Saya mencoba untuk mengintegrasikan async
/ await
ke dalam bus layanan kami. Saya menerapkan SingleThreadSynchronizationContext
berdasarkan 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 TransactionScope
dan itu merusak TransactionScope
.
TransactionScope
sepertinya 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 TransactionScope
data sebelum mengantri tugas dan memulihkannya sebelum menjalankannya tetapi tampaknya tidak mengubah apa pun. Dan TransactionScope
kode itu berantakan, jadi sangat sulit untuk memahami apa yang terjadi di sana.
Apakah ada cara untuk membuatnya berhasil? Apakah ada alternatif lain TransactionScope
?
SingleThreadSynchronizationContext
untuk setiap level teratas TransactionScope
.