Идеи обновления Smart Form - PullRequest
       5

Идеи обновления Smart Form

1 голос
/ 21 января 2010

Запуск моего первого серьезного приложения с графическим интерфейсом на C #.

У меня есть класс, который обрабатывает и делает много вещей, в которые я могу подключить методы из моего класса контроллера GUI и получать события, когда это необходимо.

У меня есть несколько списков и других элементов управления, которые я хочу обновлять всякий раз, когда эта информация обновляется. Тем не менее, я бы хотел немного ограничить это.

Для элементов управления в моей форме GUI, которые будут обновляться очень часто, если я позволю (при каждом срабатывании делегата) я должен установить таймер, который обновляется, возможно, раз в секунду. А с остальными просто обновляйте их всякий раз, когда класс, управляющий потоком данных.

Это то, что сделал бы профессионал? Я ненавижу использовать таймер, если я могу избежать, но я боюсь, что форма обновляется как сумасшедшая, в зависимости от обстоятельств.

1 Ответ

2 голосов
/ 21 января 2010

Я не вижу ничего плохого в использовании таймера. По сути, это и есть троттлинг - не допускайте более x событий в секунду. Важно, чтобы ваш таймер проверял, что что-то изменилось, прежде чем слепо обновлять пользовательский интерфейс - вы не хотите, чтобы обновление экрана происходило каждые полсекунды без причины.

Итак - подключайте события, как обычно, но вместо немедленного обновления установите флаг. Таймер может проверить флаг перед обновлением интерфейса.

Или, если вы сторонник оптимизации, пусть события запускают таймер, а таймер останавливается сразу после обновления; таким образом, ваш таймер вообще не будет работать, если не было недавнего события.

Я не могу дать однозначного ответа на вопрос, будет ли это делать «профессионал», поскольку у профессионалов в этой области, похоже, есть совершенно разные способы делать много вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...