如何模拟超时 属性?

How to emulate a Timeout property?

我调用了一个远程 Datasnap REST 方法,服务器有时不响应,我需要检测它并终止应用程序,而不是让它冻结。

我使用 DSRestConnection 和 Datasnap REST 客户端模块,其中定义了所有远程方法,附加到 DSRestConnection。我找不到他们的超时 属性,AFAIK 我只能在 Datasnap 服务器上设置超时,但有时客户端会失去与服务器的连接,所以我还需要在客户端上设置超时。

当我没有超时时,如何模拟超时?。是否有 class 来帮助做到这一点,还是我需要从头开始编写代码?在这种情况下,要走的路是对次要威胁进行远程调用,这样主线程仍然可以响应并使用类似 Timer 的东西来检查调用是否及时成功?

如有任何建议,我将不胜感激。谢谢。

TDSRestConnection 应该允许您通过其 HTTP 属性 访问基础 TDSHTTP 客户端。 TDSHTTP 客户端公开了一个 ConnectTimeout 和一个 ReadTimeout 属性。也许后一种就是你要找的。