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

Вниз

приложение не слушается!!!   Найти похожие ветки 

 
Trych ©   (2006-03-02 11:09) [0]

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


 
Ega23 ©   (2006-03-02 11:11) [1]

Application.ProcessMessages вставить.
Или читать в отдельном потоке (ИМХО, более правильно).


 
Marser ©   (2006-03-02 11:12) [2]

Добавь Application.ProcessMessages в цикл
Тогда программа будет реагировать на внешние раздражители.


 
Marser ©   (2006-03-02 11:13) [3]

> Или читать в отдельном потоке (ИМХО, более правильно).

Согласен.


 
Гаврила ©   (2006-03-02 11:20) [4]


> > Или читать в отдельном потоке (ИМХО, более
> правильно).

Не согласен )))


 
tesseract ©   (2006-03-02 11:22) [5]


> Согласен.

тоже согласен на все 100%


 
Marser ©   (2006-03-02 11:29) [6]

> [4] Гаврила ©   (02.03.06 11:20)

Баба Яга против?
Или с синхронизацией предвдишь проблемы?


 
umbra ©   (2006-03-02 11:31) [7]

интересно, зачем вообще sleep нужен при чтении файла?


 
Sergey13 ©   (2006-03-02 11:33) [8]

2[7] umbra ©   (02.03.06 11:31)
>интересно, зачем вообще sleep нужен при чтении файла?
А подумать над прочитанным. Осмысление однако. 8-)


 
Trych ©   (2006-03-02 11:39) [9]

Псиб. Аппликейшн не сильно помогает. А слип нужен чтобы была задержка по времени, ибо так нада :)


 
Сергей М. ©   (2006-03-02 11:40) [10]


> Sergey13 ©   (02.03.06 11:33) [8]


> подумать над прочитанным. Осмысление однако


И что же ты осмыслил, подумав ?
Я вот, тундра эдакая. тоже не понял, для чего sleep тут нужен ..

Просвети ?


 
Ega23 ©   (2006-03-02 11:40) [11]


> А слип нужен чтобы была задержка по времени, ибо так нада
> :)


Железная логика.
application.processmessages куда вставил-то?


 
Сергей М. ©   (2006-03-02 11:42) [12]


> Trych ©   (02.03.06 11:39) [9]


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


"так нада" - шедевр изложения ТЗ ?


 
Trych ©   (2006-03-02 11:49) [13]

Аппликейшн как и стоило бы думать был вставлен в цикл. А задержка нужна для имитации реальной системы, вот.


 
umbra ©   (2006-03-02 11:51) [14]

2 Sergey13 ©   (02.03.06 11:33) [8]

подумал, но так и не понял, зачем делать задержку именно при чтении файла.


 
Trych ©   (2006-03-02 11:53) [15]

я вот об этом уже тож пАдумал... Вот пАпью кофе и все переделаю!


 
Сергей М. ©   (2006-03-02 11:55) [16]


> задержка нужна для имитации реальной системы, вот


Ну так и воспользуйся иными API-ф-циями, реализующими неблокирующий таймер ! Вот.


 
Sergey13 ©   (2006-03-02 11:56) [17]

2[10] Сергей М. ©   (02.03.06 11:40)
2[14] umbra ©   (02.03.06 11:51)
Проще надо быть. И на смайлики внимание обращать.
8-) показывает, что я в очках и улыбаюсь.
Вы когда читаете, осмысливаете то, что читаете? Вот и программа - осмысливает и переваривает. 8-)


 
umbra ©   (2006-03-02 11:59) [18]

а чтобы обрабатывались сообщения, то можно задержку делать не с помощью sleep, а с помощью циклов, которые что вычисляют достаточно долго.


 
Сергей М. ©   (2006-03-02 12:23) [19]


> Trych ©  


Если операция чтения из файла длится заведомо менее 2-х секунд, то нет повода выпендриваться со всякими sleep"ами и прочими блокирующими ф-циями задержек - достаточно бросить на форму таймер, назначить интервал его срабатывания 2 сек, а в обработчик события тика таймера поместить код чтения очередной порции файла.


 
Гаврила ©   (2006-03-02 12:35) [20]


> Marser ©   (02.03.06 11:29) [6] [Новое
>сообщение][Ответить]
>> [4] Гаврила ©   (02.03.06 11:20)
>
>Баба Яга против?
> Или с синхронизацией предвдишь проблемы?


Я полагаю, что не нужно плодить лишние сущности.
Отдельный поток в данном случае целесообразен, если специфика задачи предполагает, что пользователь запустил процесс, и продолжает работать с программой, выполняя какие-то другие задачи.
Если же пользователь по любому ждет окончания операции, и максимум, что может сделать - это нажать кнопку "отмена", то Processmessages - самое то.
То есть концептуально - сколько задач выполняется отдновременно, столько и потоков. А отмена задачи сама по себе задачей не является.


> Или с синхронизацией предвдишь проблемы?


Ну и это разумеется тоже (учитывая уровень вопроса:-) )



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

Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.015 c
9-1126299175
TButton
2005-09-10 00:52
2006.03.19
новое... т.е. старое


5-1127647314
Jioniro
2005-09-25 15:21
2006.03.19
Компонент кнопка аля ACDSee 7.0


9-1126424094
Signate
2005-09-11 11:34
2006.03.19
GLScene - начало


4-1135711768
Варяг
2005-12-27 22:29
2006.03.19
Использование функции RegQueryValueEx()


1-1139514668
Yozch1
2006-02-09 22:51
2006.03.19
вызов процедуры из DLL





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