2011-01-13 55 views
2

使用C#中的NDde項目(http://ndde.codeplex.com/)從DDE服務器讀取數據。通常,DdeClient方法Request()將返回「#No Data」。再次調用完全相同的方法,數據將被返回。爲什麼會發生?DDE:C#NDde DdeClient.Request經常返回「無數據」?

如何解決?注意我試圖把Request()調用放在一個循環中,這樣如果沒有數據被返回,那麼它會重試給定的次數。但是,即使循環10次,數據仍然會返回「無數據」。但是,如果我設置了斷點,則數據幾乎總是會在第二次返回。我猜這是因爲請求之間有更長的時間。

回答

3

爲什麼不使用Advise功能而不是Request。要這樣做訂閱Advise活動?

client.Advise += OnAdvise; 

其中OnAdvise是事件處理程序方法。然後啓動建議循環。

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

現在,當數據變得可用時,Advise事件將觸發,您將從EventArgs獲取數據。

0

如果我不得不猜測我會說DDE服務器可能存在計時問題。您是否嘗試Request操作之間的時間間隔?