.NET Framework 4.5.1 在异步方法中引入了事务支持,例如:
using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
var result = await DoWorkAsync(cancellationToken)
.ConfigureAwait(false);
await DoMoreWorkAsync(result, cancellationToken)
.ConfigureAwait(false);
scope.Complete(); // commit to perform all operations above
}
参考:https ://msdn.microsoft.com/en-us/library/dn261473(v=vs.110).aspx
这也可以在 Azure WebJobs 异步功能中使用,以收紧工作单元并在主机关闭的情况下提供更好的幂等操作吗?如果是这样,它会对性能产生任何影响吗?
更新:
看起来服务总线队列(标准层)支持事务(单级),但存储队列不支持。参考:https ://msdn.microsoft.com/en-us/library/azure/hh767287.aspx 上的“基础功能”部分