gpt4 book ai didi

c# - 嵌套事务范围超时

转载 作者:行者123 更新时间:2023-11-30 17:13:29 26 4
gpt4 key购买 nike

查看一些包含大量间接嵌套事务范围的代码。我想知道在嵌套事务范围内处理超时的方式。示例代码

void RootMethod()
{
//default timeout is 60 seconds
using(TransactionScope scope = new TransactionScope())
{
/* Perform transactional work here */
SomeMethod();
scope.Complete();
}
}

void SomeMethod()
{
//set timeout to 30 seconds
TimeSpan timeout = TimeSpan.FromSeconds(30);
using(TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, timeout))
{
/* Perform transactional work here */
scope.Complete();
}
}

MSDN 状态 - 在嵌套的 TransactionScope 层次结构中,超时是所有超时的并集。实际上,层次结构中所有范围的最小超时优先。

第一个语句表示所有超时的联合,但第二个语句表示它是所有范围中最小的。我是否理解上面带有嵌套范围的代码的默认超时为 30 秒而不是 90 秒?

最佳答案

肯定不会是 90 秒;那是总和,不是并集。 “现在直到 30 秒”和“直到 60 秒”的结合就是“现在直到 60 秒”。验证起来应该是很简单的,当然是自己故意拉黑。我怀疑它的意思是“所有超时的交集”,在这种情况下,重要的是 30 秒;因为:只有最外层的事务才有提交的权力——但是一个 hive 中的任何事务都可以破坏整个事务(任何级别的回滚都会回滚整个最外层的事务)

关于c# - 嵌套事务范围超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9655026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com