【发布时间】:2009-09-23 21:17:07
【问题描述】:
我有一个许多人肯定熟悉的问题:我正在拨打电话(具体来说是 Forest.GetCurrentForest()),在某些情况下,它会无法工作并引发异常。不是什么大问题,只要抓住它并妥善处理即可。但是,调用失败时非常慢;完全完成需要 30 秒。
我一直在寻找一种调用该方法的方法,但设置了一个超时,以便我们可以在更短的时间后停止。我发现了一个有趣的建议here,但如果我能解决的话,我想要一个更通用的解决方案。该解决方案在额外方面也相当繁重,只是为了获得超时。我希望它会像说的那样简单
CallMethodWithTimeout(Delegate method, int timeout)
但我不确定这样的事情是否会奏效。关于做类似事情的任何建议,还是在 C# 中是不可能的?我们也被困在使用 .NET 2.0 上。
除此之外,我将让 cmets 保持 GetCurrentForest() 调用不会花费 30 秒来确定它没有发生。虽然我想知道通用方法调用方法的可行性。
【问题讨论】:
-
无论你做什么,请不要使用
Thread.Abort或Thread.Interrupt。 :) -
会的。或者不要……对。 ;) 谢谢大家的回复。我想我们现在可能已经解决了这个问题,但如果将来出现问题,我很高兴收到建议。
标签: c# asp.net .net-2.0 delegates timeout