如何在C#中实现MultiThreaded事务?

时间:2009-12-08 12:19:47

标签: c# sql-server multithreading transactions

我想以并行方式和事务方式在不同的表上运行一组不同的命令,我该怎么做?

更多详情:

我希望所有命令都通过线程分布,但是在单个事务中,所以如果所有线程都成功,我将提交其他回滚。

3 个答案:

答案 0 :(得分:6)

将TransactionScope-class与DependentTransactions一起使用。请参阅http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspxhttp://msdn.microsoft.com/en-us/library/system.transactions.dependenttransaction.aspx

这最有可能使用DTC,因此请确保您也能快速使用DTC。

答案 1 :(得分:1)

典型的数据库连接无法处理多线程用法,因此您不应尝试这样做。

相反,您可以查看DTC,它允许多个数据库连接在单个事务中进行协作。它带来了一些开销,所以你应该看看你是否真的得到了你想要的多线程好处。

答案 2 :(得分:0)

  

我想要运行一组不同的   在不同的表上的命令   并行和交易方式,   我怎么能这样做?

从线程#1:打开连接,启动事务,发出命令,提交事务。

从线程#2:打开连接,启动事务,发出命令,提交事务