使用 C# 中的 NDde 项目 (http://ndde.codeplex.com/) 从 DDE 服务器读取数据。通常,DdeClient 方法 Request() 将返回“#No Data”。再次调用完全相同的方法,将返回数据。为什么会这样?
如何解决?注意我尝试将 Request() 调用放在一个循环中,这样如果没有返回数据,那么它将重试给定的次数。但是,即使循环 10 次数据,有时仍会返回“无数据”。但是,如果我设置断点,则几乎总是会第二次返回数据。我猜这是因为请求之间的时间更长。
为什么不使用 Advise 功能而不是 Request。为此,请订阅 Advise 事件?
client.Advise += OnAdvise;
其中 OnAdvise 是事件处理程序方法。然后启动建议循环。
client.StartAdvise("myitem", 1, true, 60000);
现在,当数据可用时,将触发 Advise 事件,您将从 EventArgs 中获取数据。
如果我不得不猜测,我会说 DDE 服务器可能存在时间问题。您是否尝试过操作之间的时间间隔Request
?