У меня есть clientdataset
в ОЗУ без базы данных, которая поддерживает список активных узлов в сети.
Узлы постоянно сообщают, подтверждая, что они активны, таким образом сохраняя набор данных обновленным.
Набор данных отображается в виде dbgrid
.
Когда узел перестает сообщать о состоянии, он удаляется из базы данных через несколько секунд бездействия.
Я делаю это, обновляя поле времени ожидания при обновлении поля.
Каждую секунду я перебираю набор данных, удаляя устаревшие записи.
Это работает, но сетка иногда мерцает, когда OnDrawColumnCell
обновляет однострочную сетку, чтобы настроить цвета столбцов. Я вызываю DisableControls
/EnableControls
, но, кажется, есть небольшая задержка, пока OnDrawCell
не перерисует сетку, вызывающую мерцание.
Если я отключу итерацию для удаления устаревших записей, мерцание прекратится.
Есть ли лучший способ сделать это?