TransactionScope and multi-threading

前端 未结 2 1338
南方客
南方客 2020-12-03 04:40

I was wondering how you would use the TransactionScope class in the correct way when you are dealing with multithreading?

We create a new scope in our main thread an

相关标签:
2条回答
  • 2020-12-03 04:49

    See MSDN:

    You should also use the TransactionScope and DependentTransaction class for applications that require the use of the same transaction across multiple function calls or multiple thread calls.

    So maybe look into DependentTransaction - in particular, there is a worker thread example, here.

    0 讨论(0)
  • 2020-12-03 04:52

    This is correct: the TransactionScope class uses the Transaction.Current property that stores its value in the field, which is marked with the ThreadStatic attribute.

    The ThreadStatic attribute makes sure that the field value gets thread affinity, i.e. it has unique value in each thread. It's the recommended approach to share data within a thread. It's also known as Thread Local Storage (TLS).

    The TransactionScope class just defines a transaction context in the current thread. It doesn't mean, however, that your code must accomplish all the job in that thread. I could imagine a complex calculation algorithm that uses multiple threads.

    0 讨论(0)
提交回复
热议问题