我们知道TransactionScope类可以使用用户定义的超时值。但是从using {}块退出时会抛出超时异常。如何在经过超时值后立即抛出此timeoutexception?
答案 0 :(得分:2)
这是不可能的。
TransactionScope只存储您开始交易的时间,然后检查提交交易的时间 它无法在任意点抛出异常。
通常,执行(托管代码)中任何点可以抛出的唯一异常是ThreadAbortException
。
因此,如果您真的想要,可以创建一个单独的线程,在超时期间休眠,然后中止原始线程。
然而,这是一个可怕的想法。