1

リアルタイムソースから値を取得するRTDサーバーがあります。問題は、ユーザーが20,000のRTD数式に近いかなり大きなExcelシートを持っていることです。したがって、ユーザーがシートを開くと、すべてのRTD数式が実行され、サーバーに20,000のクエリが送信されます。これは今のところ機能しますが、クエリをグループ化してサーバーに送信できれば、サーバーのパフォーマンスは大幅に向上します。

私の考えは旗を維持することでした。計算が開始されると、フラグはfalseに設定され、計算が終了すると、リセットできます。RTD式が呼び出されたときにフラグが設定されていない場合、クエリをRTDサーバーに送信せず、プールします。フラグがtrueに設定されている場合、プールされたクエリを組み合わせてサーバーに送信できます

Excelが計算を開始および停止したときに通知を受け取る方法がわかりません。助けてください。また、この問題を解決するための他のアプローチを知っているなら、それは素晴らしいことです。Excel 2007、C#3.5を使用しています

助けてください。どうもありがとうございます。ラシュミ

ありがとう、

4

1 に答える 1

2

あなたは RTD を使用しているので、これが機能するかどうか疑問に思います:

時間指定されたバッチでバックエンドへの呼び出しを行います。最初の RTD 呼び出し (500 ミリ秒程度) でタイマーを開始し、RTD サーバーに対して行われたすべての呼び出しからタイマーの期限が切れるまで作業のバッチを構築し、バッチをバックエンドに送信して待機します。クライアントで新しいバッチを開始するときの応答。バッチ応答が届いたら、トピックが更新されたことを Excel に通知し、Excel が RefreshData を呼び出したときに、バッチ応答から個々の項目を返します。このようにして、バッチ処理は RTD の非同期性を効果的に使用しますが、Excel の再計算イベントに縛られることはありません。

これが理にかなっていることを願っています。

于 2010-11-27T10:21:55.933 に答える