Наличие фонового заставки для обновления - PullRequest
0 голосов
/ 01 июня 2010

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

Пожалуйста, имейте в виду, что:

  1. Я не хочу, чтобы фоновый работник выполнял загрузку, поскольку это было бы ужасно сложно реализовать.

  2. Я не могу использовать встроенную поддержку заставки

  3. Мне известна альтернатива DoEvents, но я не хочу идти по этому пути, ее будет очень сложно реализовать, и она не надежна.

1 Ответ

2 голосов
/ 01 июня 2010

Это абсолютно возможно, и если это не совсем то, для чего предназначен BackgroundWorker (в первую очередь, обновление графического интерфейса переднего плана во время продолжительного фонового процесса), это чертовски близко.

Если вы пытаетесь что-то сделать, например, заставить заставку вращаться по изображениям или тексту во время загрузки или установки приложения, рассмотрите возможность установки timer на заставку и обновления по таймеру.

Вам стоит держаться подальше от DoEvents, который на первый взгляд кажется самым простым решением, но приводит к боли и периодическим, трудно отлаживаемым проблемам в будущем.

Редактировать: Судя по вашим комментариям, вы загружаете свое приложение в поток графического интерфейса заставки, и это заставляет вашу заставку не обновляться. Это ожидаемое поведение. Вы захотите поместить загрузку приложения в фоновый поток, используя чистую многопоточность или BackgroundWorker (который предназначен именно для этой ситуации). Могу поспорить, что это не так сложно сделать, как вы ожидаете. Если у вас возникли проблемы с этим подходом, не стесняйтесь задавать вопрос с просьбой о помощи.

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