更新データベース・レコードを受信することができるように20秒待ってデータベースレコードを更新します。生徒のレコードはツール(データベースに新しい学生の詳細情報を追加ツール)から追加されは、最大レコードのみ最大レコードを受信することができるように20秒待った後
イベントすなわちRecordChangedEventが送信されますと、このツールは、同時に多数のレコードを追加することができます。
注:RecordChangedEventを受信したとき、私は
レッツ新しく追加された生徒のレコードを取得するためにchanged.listの呼び出しを行う必要があり、私はツールやツールから200件のレコードを追加初めてRecordChangedEvent を送ると言いますしかし、ここでは200回のイベントを受けたいとは思っていません。むしろ私は20秒遅れて、この遅れの間に来るものは無視します。
遅延から復帰した後、changed.listを呼び出す必要があります。これは、遅延が20秒であったときに追加されたすべての新しく追加されたレコードを追加し、それらをすべて一度に追加します。
私の問題は、私は200 RecordChangedEventを取得していますし、それが(悪い)200 * 20秒遅れで表示されていることです。私はそれが遅延にあるときに、すべてのイベントを無視したいし、それが遅延した後に戻ってきたときにちょうどchanged.listから更新リストを取得以下
はあなたが必要RecordChangedEvent(void)
{
static bool lock = false;
bool updateNewRecord = false;
// delaying for 20 sec when first event received so that max record can be received
if(!lock)
{
lock = true;
std::this_thread::sleep_for(std::chrono::seconds(20));
updateNewRecord = true;
}
if(updateNewRecord)
{
// adding after 20 sec delay changed.list will have all the updated received records within 20 seconds
AddedRecord(changed.list);
lock = false;
}
}
誰もがこれはまだ何も応答8日ではありません小さな例で私を助けることができます助けてください? –