2

C# から NDde プロジェクト (http://ndde.codeplex.com/) を使用して、DDE サーバーからデータを読み取ります。多くの場合、DdeClient メソッド Request() は「#No Data」を返します。まったく同じメソッドを再度呼び出すと、データが返されます。なぜこれが起こるのですか?

それを解決する方法は?Request() 呼び出しをループに入れて、データが返されない場合は指定された回数だけ再試行することに注意してください。ただし、データを 10 回ループしても、「No Data」が返されることがあります。ただし、ブレークポイントを設定すると、ほとんどの場合、データは 2 回目に返されます。これは、リクエスト間の時間が長いためだと思います。

4

2 に答える 2

3

リクエストの代わりにアドバイス機能を使用してみませんか。それを行うには、Adviseイベントを購読しますか?

client.Advise += OnAdvise;

ここで、OnAdviseはイベントハンドラーメソッドです。次に、アドバイスループを開始します。

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

これで、データが利用可能になると、Adviseイベントが発生し、EventArgsからデータを取得します。

于 2011-02-22T19:14:18.017 に答える
0

推測するなら、おそらく DDE サーバーにタイミングの問題があると思います。操作間の時間間隔を試しましたRequestか?

于 2011-04-28T17:32:12.353 に答える