我有一个TransactionScope对象,我想将它用于使用Parallel.ForEach创建的所有任务,我该如何实现?
我想并行写入消息队列,20-50条消息,消息队列是事务性的:
using (var queue = new MessageQueue(_exportEndpoint))
{
var label = string.Format("{0} ComponentId - {1}", DateTime.Now.ToUniversalTime(), componentId);
queue.Send(contents, label, MessageQueueTransactionType.Automatic);
_log.WriteInfo("ExportToQueue: Message sent to queue - " + label);
}
并且主线程正在使用TransactionScope对象,我尝试了以下但是我在事务的提交上得到了一些时间:
var clone = Transaction.Current.DependentClone(DependentCloneOption.RollbackIfNotComplete);
Parallel.ForEach(components.ToList(), c => ExportComponent(c, clone));
最佳答案 排序!
我错过了DependentTransaction的Complete