我有一个C#RtdServer
,它接收来自TCPListener
的数据更新。它的运行如预期,除了在某些时候,它仍然在工作表RTD()
s在ServerTerminate()
被调用,我似乎无法弄清楚为什么。Excel调用IRTD.ServerTerminate,但表中仍然存在有效的RTD公式
我的理解,如果ServerTerminate()
被称为:
- 所有RTD公式删除
ServerStart()
不返回1
什么其他的原因在那里为Excel调用ServerTerminate()
?
编辑:
下面是我设置的HeartBeat
机制:
public int ServerStart(IRTDUpdateEvent callback)
{
callback.HeartbeatInterval = 60000; // 1 min HB
_callback = callback;
// Other setup ...
return 1;
}
这是HeartBeat
代码
public int Heartbeat()
{
_log.Info("HB called...");
return 1;
}
从上面,我希望看到HeartBeat
电话每60秒(60Kms),但我看不到这个记录。我难住 - 任何想法?
怎么样'心跳'?我期望它的失败被类似于'ServerStart'处理。 –
上面增加了HB代码。我多久应该期待这个被称为? –
当不再需要主题时调用服务器终止。每次调用ConnectData时,我都会记录新的ID,然后再将它们记录在DisconnectData上。你应该能够看到Excel是否认为没有更多的主题了。 – Franchesca