gpt4 book ai didi

c# - 在长时间运行的循环中处理超时

转载 作者:行者123 更新时间:2023-11-30 20:59:03 26 4
gpt4 key购买 nike

我有一个应该在给定时间内执行的方法,或者它应该抛出“超时”异常。基本上它有一个长时间运行的循环。在每次循环中计算超时似乎很昂贵:

private void DoSomethingGood(int timeoutSeconds)
{
var startTime=DateTime.Now;
int count=100000000; //some big number

for(int i=0;i<count;i++)
{
//code to to take care of timeout.
var ellapsedSeconds =(DateTime.Now-startTime).TotalSeconds;
if(ellapsedSeconds>=timeoutSeconds)
{
throw new TimeoutException("Timeout");
}

/*some more code here*/

}
}

(在没有其他代码的情况下调用上述方法,本身花费了超过 2 秒,主要是由于 DateTime.Now 语句)

有人可以建议更好的方法吗?

我对 +-几毫秒没问题。

最佳答案

只是定期检查吗?例如:

if((i % 100) == 0) { /* check for timeout */ }

或者调整为100010000等,这取决于通知超时需要多快。

关于c# - 在长时间运行的循环中处理超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15636799/

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