TransactionScope and multi-threading
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.