Dot-Net

TransactionScope 和多執行緒

  • March 23, 2009

我想知道在處理多執行緒時如何以正確的方式使用 TransactionScope 類?

我們在主執行緒中創建了一個新範圍,然後生成了幾個工作執行緒,我們希望它們參與主範圍,例如,如果範圍從未完成,則在每個工作執行緒上呼叫回滾。

我在內部使用 ThreadStaticAttribute 閱讀了有關 TransactionScope 的一些內容,這使得上述不可能/非常困難 - 有人可以驗證任何一種方式嗎?如果我們以同步方式執行我們的程式碼,那麼回滾工作,即內部事務能夠參與主事務,但如果我們切換到執行緒執行則不能。

MSDN

對於需要跨多個函式呼叫或多個執行緒呼叫使用相同事務的應用程序,您還應該使用 TransactionScope 和 DependentTransaction 類。

所以也許看看DependentTransaction- 特別是,這裡有一個工作執行緒範例

引用自:https://stackoverflow.com/questions/673530