TransactionScope和多线程

问题描述 投票:42回答:2

我想知道在处理多线程时如何正确使用TransactionScope类?

我们在主线程中创建一个新的作用域,然后生成几个工作线程,并且我们希望这些线程参与主作用域,例如,如果该作用域从未完成,则在每个工作线程上调用回滚。

我在内部使用ThreadStaticAttribute读取了有关TransactionScope的内容,这使上述操作变得不可能/非常困难-有人可以验证任一方法吗?如果我们以同步方式运行代码,则回滚将起作用,即内部事务能够参与主事务,但是如果我们切换到线程执行则不能。

我想知道在处理多线程时如何正确使用TransactionScope类?我们在主线程中创建一个新的作用域,然后生成几个...

.net multithreading transactions transactionscope
2个回答
30
投票

请参见MSDN


19
投票

这是正确的:TransactionScope类使用Transaction.Current属性将其值存储在该字段中,该字段用ThreadStatic属性标记。

© www.soinside.com 2019 - 2024. All rights reserved.