我正在为我的应用程序(C# 3.5)添加 DDE,有时当我打开数千个(6000)个 DDE 通道时它可以工作,有时,尤其是在调试和 excel 崩溃期间,它只会给我一些项目。
我怀疑 DDE 通道在 Windows 中仍然“活动”,当我尝试打开更多通道时,我达到了 DDE 通道限制(10,000),然后并非所有通道都有数据。
有没有办法在 Windows 中“清理”DDE 引擎,所以我会重新开始?还是重新启动 Windows 是唯一的解决方案?
如果您使用的是开源 NDde (http://ndde.codeplex.com/),那么您可以使用实现 IDisposable 模式的 DdeClient 类。然后在 using 块中使用客户端。这有效地创建了一个 finally 块,如果抛出异常,它应该关闭连接。例如,
using (DdeClient client = new DdeClient(DDE_SERVER_NAME, dataField))
{
client.Connect();
string data = client.Request("xyz", DDE_TIMEOUT);
}
然而,我经历过同样的事情,虽然数据没有被一致地返回,但我没有打开数千个连接,所以这可能是一个不同的问题。