TransactionScope和超时问题

时间:2010-07-27 13:27:05

标签: c# timeout transactionscope

我们知道TransactionScope类可以使用用户定义的超时值。但是从using {}块退出时会抛出超时异常。如何在经过超时值后立即抛出此timeoutexception?

1 个答案:

答案 0 :(得分:2)

这是不可能的。

TransactionScope只存储您开始交易的时间,然后检查提交交易的时间 它无法在任意点抛出异常。

通常,执行(托管代码)中任何点可以抛出的唯一异常是ThreadAbortException

因此,如果您真的想要,可以创建一个单独的线程,在超时期间休​​眠,然后中止原始线程。
然而,这是一个可怕的想法。