2

使用 C# 中的 NDde 项目 (http://ndde.codeplex.com/) 从 DDE 服务器读取数据。通常,DdeClient 方法 Request() 将返回“#No Data”。再次调用完全相同的方法,将返回数据。为什么会这样?

如何解决?注意我尝试将 Request() 调用放在一个循环中,这样如果没有返回数据,那么它将重试给定的次数。但是,即使循环 10 次数据,有时仍会返回“无数据”。但是,如果我设置断点,则几乎总是会第二次返回数据。我猜这是因为请求之间的时间更长。

4

2 回答 2

3

为什么不使用 Advise 功能而不是 Request。为此,请订阅 Advise 事件?

client.Advise += OnAdvise;

其中 OnAdvise 是事件处理程序方法。然后启动建议循环。

client.StartAdvise("myitem", 1, true, 60000);

现在,当数据可用时,将触发 Advise 事件,您将从 EventArgs 中获取数据。

于 2011-02-22T19:14:18.017 回答
0

如果我不得不猜测,我会说 DDE 服务器可能存在时间问题。您是否尝试过操作之间的时间间隔Request

于 2011-04-28T17:32:12.353 回答