【发布时间】:2020-08-20 09:21:29
【问题描述】:
我正在调用两个依赖于一些外部 Web 服务的函数。目前,它们并行运行,当它们都完成时,执行恢复。但是,如果外部服务器花费太多时间来处理请求,它可能会锁定我的代码一段时间。
我想添加一个超时,这样如果服务器响应时间超过 10 秒,那么就继续。这就是我所拥有的,我该如何添加超时?
Parallel.Invoke(
() => FunctionThatCallsServer1(TheParameter),
() => FunctionThatCallsServer2(TheParameter)
);
RunThisFunctionNoMatterWhatAfter10Seconds();
【问题讨论】:
-
那些外部调用可以取消吗?如果是这样,您可以使用 CancellationTokenSource 创建一个令牌,它将在 X 时间后自动取消并传递它。