如何在特定时间后使函数返回
Posted
技术标签:
【中文标题】如何在特定时间后使函数返回【英文标题】:How to make a function return after a specific amount of time 【发布时间】:2014-06-17 05:29:45 【问题描述】:我有一个代理测试功能。在它里面我有一个 catch 块,如果代理不好,在指定的时间量 (TIMEOUT) 后我返回一个错误标志。问题是即使没有异常存在,该函数每 10 次挂起一次。实际上 HttpWebResponse.Timeout 不能正常工作(或者它可能工作但我不知道如何使用它)。如果我的 try...catch 没有捕获所有错误,如何使该方法在特定时间后自动返回错误标志?
【问题讨论】:
你能告诉我们你现在的代码吗? 【参考方案1】:找不到链接,我不久前在 SO 上找到的那个解决方案。
public class TimeoutInvoker
public static void Run(Action action, int timeout)
var waitHandle = new EventWaitHandle(false, EventResetMode.ManualReset);
AsyncCallback callback = ar => waitHandle.Set();
action.BeginInvoke(callback, null);
if (!waitHandle.WaitOne(timeout))
throw new TimeoutException("Timeout.");
只需使用您的操作和超时作为参数。 示例:
TimeoutInvoker.Run(()=>LongRunningFunction(), 60000);
【讨论】:
以上是关于如何在特定时间后使函数返回的主要内容,如果未能解决你的问题,请参考以下文章
(Django)如何在更改外键下拉列表后使“选定”选项有效?
如何在 Python Google Cloud 函数中返回特定状态
如何在请求后使 IdentityDbContext 保持活动状态,以便服务可以使用 UserManager 完成其任务?