Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: CL | DM;

Вниз

Много поточность   Найти похожие ветки 

 
snake1977   (2002-10-31 17:04) [0]

Здравствуйте All !!
Моя программа висит в памяти и постоянно проверяет базу данных на наличие ошибок. Когда найдена ошибка она выдает сообщение на экран, типа "ВНИМАНИЕ! найдено несоответствие в записи ....". Так вот проблемма именно в этих сообщениях. Для выдачи сообщения я использую вызов
MessageBox(0,"описание ошибки","заголовок",MB_OK);
Таким образом когда программа выдает сообщение , то она естественно ждет нажатия на кнопку ОК и не выполняет ни каких действий. Подскажите кто нибудь, как мне сделать так, чтобы после выдачи сообщения программа продолжала работать, т.е. обнаружила ошибку выдала сообщение и продолжила дальше проверять базу и выдавать сообщения.
Надеюсь понятно объяснил :)


 
Aristarh ©   (2002-10-31 17:10) [1]

Используй не MessageBox, а напиши простую форму и отображай не модально


 
Digitman ©   (2002-10-31 17:13) [2]


> то она естественно ждет нажатия на кнопку


Почему это "естественно" ? Ждет только тот код.поток, который вызвал MessageBox(), остальные же код.потоки делают свое дело.

Задача доп.код.потока - не взаимодействие с пользователем , а выполнение длительных вычислений. Пусть твой доп.код.поток, обнаружив некий отказ в БД, шлет какому-либо окну осн.код.потока некое сообщение вызовом PostMessage() и продолжает себе "крутиться по хозяйству". Основной же код.поток (задача которого - интерфейс с пользователем), получив через диспетчер оконных сообщений такое вот сообщение от доп.потока, вызывает тот самы MessageBox() и ждет (нисколько не мешая работе доп.код.потока), пока пользователь сподобится нажать ОК.


 
pusrg ©   (2002-10-31 17:19) [3]

Честно говоря это дело твое как это реализовывать, но по-моему, чтобы не нагружать юзера выскакивающими окнами, было бы логичней писать все сообщения в отдельный список (лог). И выдавать в:
1.Соответствующем окне после проверки всей базы
2.Том же окне, которое показано во время проверки. В этом случае можно разрешить перерисовывать список, чтобы пользователь видел новые замечания (хотя это замедлит общую проверку, я бы так не делал).


 
pusrg ©   (2002-10-31 17:21) [4]

To Aristarh
Пока писал, не видел Вашего ответа :)


 
Zemal ©   (2002-10-31 18:27) [5]

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



Страницы: 1 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-33974
bobby
2002-11-01 14:36
2002.11.11
проблема


1-33961
Tea_pot
2002-11-01 00:55
2002.11.11
Пожалуйста киньте пример с хорошим таймером с точностью до мсек


1-33936
((Alexis))
2002-10-30 15:53
2002.11.11
Последовательное переключение раскладки клавиатуры.


1-34012
Кен
2002-11-02 07:28
2002.11.11
Глюк! У меня в файле справки которая вызывается по F1 исчез Указа


14-34251
Malder
2002-10-20 23:18
2002.11.11
Как я понимаю, UBPFD накрылась ?