【发布时间】:2012-01-06 12:01:57
【问题描述】:
在this 示例中,有一个关于如何使用Timer#schedule 创建超时逻辑的漂亮描述。但是那里有一个陷阱。我们有 2 个 rpc 请求:第一个在服务器上进行大量计算(或者可能从数据库中检索大量数据),第二个是立即返回结果的微小请求。如果我们发出第一个请求,我们不会立即收到结果,而是会出现超时,超时后我们会发出第二个微小请求,然后示例中的abortFlag 为真,因此我们可以检索第二个请求的结果,但是我们也可以检索之前超时的第一个请求的结果(因为第一次调用的AsyncCallback对象没有被破坏)。
所以我们需要在超时发生后取消第一个 rpc 调用。我该怎么做?
【问题讨论】: