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

Вниз

BeginThread(), MessageBox() и грабли   Найти похожие ветки 

 
Sam Stone ©   (2006-12-11 20:52) [0]

Такая вот невеселая сказка: жила-была процедура, которая крутилась в потоке, делала свое черное дело и показывала юзеру процесс своей отработки. Но тут мерзким юзверям понадобилось задавать вопрос (в конкретном случае заменять или нет имеющиеся данные в БД новыми), и присобачил я мессаджбокс (который апишный) в поток (уклоняюсь от тухлых помидоров). Собсна вопрос: как избежать наступания на грабли в таком решении, т.к. времени в обрез и на глобальное изменение кода и дебаг его не хватит.


 
DrPass ©   (2006-12-12 00:04) [1]


> как избежать наступания на грабли в таком решении

А какие грабли ожидаются?


 
Sam Stone ©   (2006-12-12 12:59) [2]

Ну допустим сперва я вместо MessageBox вставил MessageDlg. В результате вылетало AV "Canvas does not allow drawing" (причем тут оно - знать не знаю, но вызывалось именно диалогом). Зависимости не было никакой, на всех компах в офисе работало ок. Потом в бредопоисках наткнулся в дебрях интернета, что апи потокобезопасен (достоверность этой инфы не гарантирую). Собсна интересует вопрос возможны ли грабли при вызове из потока MessageBox и если да, то как по другому запросить у пользователя нужную инфу? (запрашиваться должно неизвестное кол-во раз)


 
Leonid Troyanovsky ©   (2006-12-12 13:12) [3]


> Sam Stone ©   (12.12.06 12:59) [2]

>  Собсна интересует вопрос возможны ли грабли при вызове
> из потока MessageBox и если да, то как по другому запросить


Вызов MB, сам по себе, вполне безопасен.
Т.е., к иным опасностям он не причастен.

--
Regards, LVT.


 
tesseract ©   (2006-12-12 14:06) [4]


> Собсна интересует вопрос возможны ли грабли при вызове из
> потока MessageBox и если да, то как по другому запросить
> у пользователя нужную инфу? (запрашиваться должно неизвестное
> кол-во раз)


через Synchronize попробуй messageDlg вызвать.


 
DrPass ©   (2006-12-12 15:11) [5]


> через Synchronize попробуй messageDlg вызвать

Не стоит, ИМХО. Это остановит главный поток программы


 
Sam Stone ©   (2006-12-12 17:43) [6]

> [4] tesseract ©   (12.12.06 14:06)

а где Synchronize у BeginThread? Я сперва тоже решил его поискать, но ничего не нашел.


 
MetalFan ©   (2006-12-12 17:49) [7]

а зачем тебе BeginThread? чем  TThreаd не угодил?



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

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

Наверх




Память: 0.45 MB
Время: 0.041 c
15-1165903029
ан
2006-12-12 08:57
2006.12.31
Умер Аугусто Пиночет...


15-1165089940
Cyrax
2006-12-02 23:05
2006.12.31
Java - это же не Yava...


1-1163431096
DVM
2006-11-13 18:18
2006.12.31
Изменение размеров формы до ее показа. Странность.


15-1165680832
SkySpeed
2006-12-09 19:13
2006.12.31
Глючит запись с видеокамеры и с тв-тюнера... как быть?


15-1165475633
Tirael
2006-12-07 10:13
2006.12.31
что бы почитать...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский