代码之家  ›  专栏  ›  技术社区  ›  Ahmed

如何在C_中实现多线程事务?

  •  2
  • Ahmed  · 技术社区  · 16 年前

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

    更多细节:

    我希望所有命令都分布在线程上,但只在一个事务中,因此如果所有线程都成功,我将提交其他回滚。

    3 回复  |  直到 16 年前
        1
  •  6
  •   Jonas Lincoln    16 年前

    将TransactionScope类与DependentTransactions一起使用。见 http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx http://msdn.microsoft.com/en-us/library/system.transactions.dependenttransaction.aspx .

    这很可能会使用dtc,因此请确保您也能加快速度。

        2
  •  1
  •   Lasse V. Karlsen    16 年前

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

    相反,你可以调查一下 DTC ,它允许多个数据库连接在单个事务中协作。不过,它会带来一些开销,所以您应该看看是否真正获得了所需的多线程好处。

        3
  •  0
  •   RickNZ    16 年前

    我想换一套 中不同表上的命令 以交易的方式并行, 我该怎么做?

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

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