DDE: C # NDde DdeClient.Request часто возвращает «Нет данных»? - PullRequest
2 голосов
/ 13 января 2011

Использование проекта NDde (http://ndde.codeplex.com/) из C # для чтения данных с сервера DDE. Часто метод Request () DdeClient возвращает «#No Data». Повторный вызов того же самого метода и данные будут возвращены. Почему это случилось?

Как это решить? Примечание. Я попытался поместить вызов Request () в цикл так, что если данные не будут возвращены, он будет повторяться указанное количество раз. Однако зацикливание даже в 10 раз по-прежнему иногда возвращает «Нет данных». Однако, если я установлю точку останова, данные почти всегда будут возвращаться во второй раз. Я предполагаю, что это потому, что между запросами больше времени.

Ответы [ 2 ]

3 голосов
/ 22 февраля 2011

Почему бы не использовать функцию Advise вместо запроса.Для этого подпишитесь на событие Advise?

client.Advise += OnAdvise;

, где OnAdvise - метод обработчика события.Затем запустите цикл advise.

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

Теперь, когда данные станут доступны, сработает событие Advise, и вы получите данные из EventArgs.

0 голосов
/ 28 апреля 2011

Если бы мне пришлось угадывать, я бы сказал, что, возможно, проблема с синхронизацией с сервером DDE. Вы пробовали временной интервал между операциями Request?

...