Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
6-34149
Freeze
2002-09-13 09:53
2002.11.11
Помогите!!! ПЛИЗЗЗ!!!


6-34142
CrazyAngel
2002-09-12 17:33
2002.11.11
Маленький e-мail :)


8-34135
DuMA
2002-07-21 15:58
2002.11.11
Как вывести изображение на время загрузки программы?


1-34089
DVM
2002-10-31 09:06
2002.11.11
Глюк: самопроизвольно исчезают элементы управления


1-34037
pirat
2002-11-02 18:26
2002.11.11
Глупый вопрос про исключения :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский