Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么控制COM调用的超时?_Com - Fatal编程技术网

什么控制COM调用的超时?

什么控制COM调用的超时?,com,Com,我们的软件可以通过COM与Excel进行通信。例如,Excel调用COM函数,使我们的软件以结果响应。但是,如果我们的软件计算这些结果需要大约3分钟以上的时间,那么由于某种原因,COM引用将被删除 这就是COM的本质(如果在某个时间后没有收到呼叫响应,则超时),还是我们做错了什么?COM没有呼叫内超时。如果您启动一个调用,并且服务器在处理该调用时进入无限循环,则该调用将永远持续,除非客户端和COM服务器之间存在通信问题 然而,还有很多。根据您描述的症状,这看起来像是通信问题。我们在Excel和在

我们的软件可以通过COM与Excel进行通信。例如,Excel调用COM函数,使我们的软件以结果响应。但是,如果我们的软件计算这些结果需要大约3分钟以上的时间,那么由于某种原因,COM引用将被删除


这就是COM的本质(如果在某个时间后没有收到呼叫响应,则超时),还是我们做错了什么?

COM没有呼叫内超时。如果您启动一个调用,并且服务器在处理该调用时进入无限循环,则该调用将永远持续,除非客户端和COM服务器之间存在通信问题


然而,还有很多。根据您描述的症状,这看起来像是通信问题。

我们在Excel和在同一台机器上运行的软件上尝试了这一点,我们发现了同样的问题。因此不涉及网络连接。您能想到我们可能缺少的任何东西会导致调用出现问题吗?事实证明,我们看到的问题是由于我们的应用程序线程在等待COM调用返回时被阻塞造成的。应用程序的Windows API消息队列已满,然后我们看到一个错误。