Я использую ReaderWriterLockSlim для защиты ресурсов моих классов, которые участвуют в транзакции.Каждый из классов реализует интерфейс IEnlistmentNotification , чтобы гарантировать, что они могут быть зафиксированы или откатаны как единое целое.
Из того, что я могу сказать, Transaction.Current.TransactionCompleted не гарантированно находится в том же потоке, что и тело транзакции, но я не могу найти никакой документации для обратных вызовов для IEnlistmentNotification методов.