TransactionScope et le multi-threading

Je me demandais comment vous devez utiliser la classe TransactionScope dans la bonne voie lorsque vous faites affaire avec le multithreading?

Nous créer un nouveau champ d'application dans notre thread principal, puis nous frayer un couple de threads de travail et nous voulons que ces à participer dans le champ d'application principal, de sorte que, par exemple, la restauration est appelée sur chaque travailleur si la portée n'est jamais terminé.

J'ai lu quelque chose à propos de TransactionScope à l'aide de la ThreadStaticAttribute en interne qui fait le ci-dessus impossible ou très difficile - ce que quelqu'un pourrait vérifier de toute façon? Si nous exécuter le code dans un syncrhonized mode alors que les restaurations de travail, je.e les transactions internes sont en mesure de participer à l'opération principale, mais pas si nous passer à une exécution thread.

Grâce

  • Bonne question; c'est un scénario que j'avais tout simplement rejeté comme "ne fais pas ça", mais après enquête, il ya un soutien via DependentTransaction. J'ai appris quelque chose, merci.
  • C'est probablement vraiment obsolète info maintenant, en considérant que ce qui est décrit ici est maintenant considéré comme un bug, et TransactionScope a une nouvelle option permettant de circuler entre les async attend, qui aurait pour support multi-threading. particular.net/blog/...