2011-01-10 49 views
2

我爲我的應用程序(C#3.5)添加了DDE,有時當我打開數千(6000)個DDE通道時,有時候,特別是在調試和excel崩潰期間,它只給我一些項目。如果打開DDE通道的應用程序崩潰,會發生什麼情況?

我懷疑DDE通道在Windows中仍然是「活動」,當我嘗試打開更多的DDE通道時,限制(10,000),然後不是全部都有數據。

有沒有辦法在Windows中「清除」DDE引擎,所以我會開始新鮮?或者正在重啓Windows唯一的解決方案?

+1

DDE是interop的goto。注意,猛禽現在會隨時吃掉你。 – 2011-01-10 12:37:54

+1

在2011年,您的問題如下所示:「我懷疑內存控制塊在DOS中仍處於」活動「狀態,當我嘗試打開更多時,我達到64KB限制」 – 2011-01-13 23:30:55

回答

0

如果您使用開源NDde(http://ndde.codeplex.com/),那麼您可以使用實現IDisposable模式的DdeClient類。然後使用使用塊內的客戶端。這有效地創建了一個finally塊,如果拋出異常,它應該關閉連接。例如,

using (DdeClient client = new DdeClient(DDE_SERVER_NAME, dataField)) 
{ 
    client.Connect(); 

    string data = client.Request("xyz", DDE_TIMEOUT); 
} 

不過,我雖然經歷了同樣的事情的數據不被一致地返回,但我不開放數千個連接,因此它可能是一個不同的問題。

相關問題