gpt4 book ai didi

c# - 如何超时执行函数

转载 作者:行者123 更新时间:2023-11-30 21:28:35 24 4
gpt4 key购买 nike

我想限制函数执行的时间。如果花费的时间太长,它应该停止执行(如果需要抛出异常)。我之所以想要它,是因为有时 lock 里面的代码会永远占用,所有想要访问 lock 语句的线程都无法访问它。

例子:

lock(objLock){
DoWork();
}

所以我想限制函数 DoWork() 的执行时间,以防止其他线程永远等待进入锁。限制其他线程等待进入的时间对我没有帮助。

最佳答案

使用另一个线程来完成工作,当前线程作为监视器:

lock(objLock){
Thread workerThread = new Thread(DoWork);
workerThread.Start();

TimeSpan timeout = TimeSpan.FromSeconds(30);
bool finished = workerThread.Join(timeout);
if (!finished) workerThread.Abort();
}

关于c# - 如何超时执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56291229/

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