9

イベントが配線されていTextBoxます。TextChanged結局SQLデータベースへのクエリなので、クエリ数を制限したい。

ユーザーがキーを押していない場合にのみ、クエリを作成したい.. 300ミリ秒程度。何らかの理由で前のクエリがまだ実行されている場合は、それをキャンセルしてから、新しいクエリを発行する必要があります。

4

5 に答える 5

8

を作成し、System.Windows.Forms.Timerキーを押すたびにリセットします (たとえば、停止してから開始します)。タイマー イベントがトリガーされた場合は、タイマーを無効にします。

于 2010-06-24T18:17:30.703 に答える
1

Reactive Framework を使用して、一連のイベントでトリガーします。これがどのように機能するかは正確にはわかりませんが、ここ ( Reactive Extensions for .NET ) を読んで、ニーズを満たすかどうかを確認してください。ここにもたくさんの例があります: Examples . 「スロットリング」の例は、探しているものかもしれません。

于 2010-06-24T17:59:53.463 に答える
0

1) タイマーを作成します。

2) タイマーの Tick イベントのハンドラーを作成します。各ティックで、十分なアイドル時間が経過したかどうかを確認し、経過した場合はタイマーを停止してクエリを実行します。

3)そのテキストボックスでキープレスが発生するたびに、タイマーを再起動します。

于 2010-06-24T18:17:40.417 に答える
0

ユーザーが任意のキーを押すたびに呼び出される 2 番目の actionlistener を追加し、呼び出されたときに現在の時間をグローバル変数に保存します。次に、TextChanged イベントが呼び出されるたびに、グローバル変数と現在の時刻の時間差を確認します。

差が 300 ミリ秒未満の場合は、タイマーを開始して 300 ミリ秒後にクエリを実行します。次に、ユーザーが別のキーを押すと、最初にタイマーがリセットされます。

于 2010-06-24T17:57:57.480 に答える