gpt4 book ai didi

c# - 是否可以解决 C# 中函数调用的超时问题?

转载 作者:太空狗 更新时间:2023-10-30 01:27:25 26 4
gpt4 key购买 nike

在我的程序中我调用了一个方法

xslTransform.Load(strXmlQueryTransformPath, xslSettings, new XmlUrlResolver());


我面临的问题是:有时这个函数在时间内执行得不好。

有时编译器会在经过长时间的试验后引发超时问题。这反过来会导致这部分应用程序关闭。这是我想避免的。

因此,如果它超过特定时间(比如 10 秒),我需要重新调用该方法。能不能在这附近加上一些代码行,就可以满足要求了?

最佳答案

您需要在新的 Thread 上调用该方法,然后在新线程上调用 Join,超时为 10 秒。

例如:

public static bool RunWithTimeout(ThreadStart method, TimeSpan timeout, int maxTries) {
while(maxTries > 0) {
var thread = new Thread(method);
thread.Start();
if (thread.Join(timeout))
return true;
maxTries--;
}
return false;
}


if (!RunWithTimeout(
delegate { xslTransform.Load(strXmlQueryTransformPath, xslSettings, new XmlUrlResolver()); },
TimeSpan.FromSeconds(10),
5 //tries
))
//Error! Waaah!

关于c# - 是否可以解决 C# 中函数调用的超时问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834311/

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