2

私は自分のアプリ (C# 3.5) に DDE を追加していますが、数千 (6000) の DDE チャネルを開くと機能することもあれば、特にデバッグ中や Excel のクラッシュ中にいくつかのアイテムしか表示されないこともあります。

Windows で DDE チャネルがまだ「アクティブ」であり、さらに開こうとすると、DDE チャネルの制限 (10,000) に達し、すべてのデータが存在しないと思われます。

Windows で DDE エンジンを「クリーン」にする方法はありますか? または、Windows を再起動することが唯一の解決策ですか?

4

1 に答える 1

0

オープン ソースの NDde (http://ndde.codeplex.com/) を使用している場合は、IDisposable パターンを実装する DdeClient クラスを使用できます。次に、using ブロック内でクライアントを使用します。これにより、例外がスローされた場合に接続を閉じる最終ブロックが効果的に作成されます。例えば、

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

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

ただし、データが一貫して返されないという同じことを経験しましたが、何千もの接続を開いていないため、別の問題である可能性があります。

于 2011-01-13T18:57:53.227 に答える