【发布时间】:2009-03-23 14:15:28
【问题描述】:
我想知道在处理多线程时如何以正确的方式使用 TransactionScope 类?
我们在主线程中创建一个新作用域,然后生成几个工作线程,我们希望这些线程参与主作用域,例如,如果作用域从未完成,则在每个工作线程上调用回滚.
我在内部使用 ThreadStaticAttribute 阅读了一些关于 TransactionScope 的内容,这使得上述不可能/非常困难 - 有人可以验证任何一种方式吗?如果我们以同步方式运行我们的代码,那么回滚就会起作用,即内部事务能够参与主事务,但如果我们切换到线程执行,则不会。
【问题讨论】:
-
好问题;这是我简单地认为“不要那样做”的情况,但经过调查,有通过 DependentTransaction 提供的支持。我学到了一些东西,谢谢。
-
考虑到这里描述的内容现在被认为是一个错误,现在这可能是真正过时的信息,并且 TransactionScope 有一个新选项允许它在异步等待中流动,这必须支持多线程。 particular.net/blog/…
标签: .net multithreading transactions transactionscope