![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
h2o |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
Есть прога. Она состоит из одной формы. При запуске системы моя прога запускается свёрнутой в трэй, и висит там пока я не нажму "ВЫХОД".
А как заставить в это время прогу работать??? Нужно событие и действие типа..
В форме все настройки и процедуры описаны... и при событии "Пока прога запущена, всё время делать то-то". И вот я в цикле, тока буду запускать процедуры и функции из формы, с настройками из формы! Как такое замутить? З.Ы. Про Api вариант знаю... но вроде он тут не подходит... вот он:
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Создай таймер и засунь туда , все что хошь и пускай се вертится
![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
не, не вариант!и какой я ему счёт поставлю??? неужели нет ничё такого.....
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
ничего не понял. если ты сделал GUI приложение оно и так работает ( отлавливает и обрабатывает сообщения )
если тебе нужно чтобы постоянно выполнялось какое-то действие -- запусти его во потоке... короче, объясняй подробнее... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
_hunter да я вроде и так подробно обьяснил... ну вообщем ещё раз... попробую!
1 прога. 1 форма. Прога при запуске создаётся в трэе. ну да, всё правильно-прога и так висит в памяти и работает, пока её сам не закроеш....дак вот, чтобы запустить операцию... нужно нажать на кнопку, так? да так! а у меня там кнопок нет. я делаю жалкое подобие службы!!! и мне надо чтобы - конкретно: 1. от старта проги и до выхода из проги, она у меня выполняла действия, без нажатий на клавиши... просто запустил прогу, форма появилась, ты с формой работаешь, меняешь настройки, а в это время прога ничего тебе не говоря, сама на заднем плане что-то делает... 2. что делает прога:
вот так. как это реализовать? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
ааа... ну тогда, как я уже говорил, в TForm1.FormCreate просто создавай поток и в нем эти действия выполняй.
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
_hunter
![]() я вообще далёк от понятия про потоки! я сам не смогу разобраться буз примера, если не влом, писани.... спасибо! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
ИМХО здесь поток не нужен, хотя смотря что будет делаться в
если действий не сильно много, т.е. нет больших ресурсоемких расчетов, то проще юзать таймер, да ожидание на 6 часов проще делать через него ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
идеш файл, нью, озер, треад обджект.
как-то обзываеш, как-то сохраняеш. в его методе Execute пишеш свои действия. в главной форме создаеш ( как-то так TMyThread.Create(false) ) все. ( не забываем подключить модуль ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
а чё в методе Execute указывать?
1.сначало, нужно указать чтобы поток висел всегда в памяти? и код всех действий вбить? Для этого вот это?
2. TMyThread.Create(false) - это в OnCreate главной формы можно указать или где? 3. Поток вообще сможет работать с компонентами, чекитами, едитами из главной формы? Добавлено @ 08:02 ввобще мне надо сравнить время системы и указанное мной время и запустить процедуру в главной форме описанную. это возможно? или надо и эту процедуру в поток переносить? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
пишется где угодно но перед вызовом execute Для работы с VCL необходимы защищенные секции - читай статью Петовича в разделе важных тем ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
h2o |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
ничё не получается! вот я так сделал:
Чёто не так! как сделать чтобы поток всегда висел в памяти и //1 //2 //3 выполнялись всё время. Тоесть я запустил поток. а дальше он пока работает быдет выполнять //1 //2 потом условие //3 и если условие не верно, то он подождёт wait(10000) а потом опять //1 //2 //3. и если уже верно то он запустит мою процедуру из другой формы... после выполнения процедуры, он опять будет висеть в памяти и выполнять как и прежде //1 //2 //3. Вот как это сделать... а да, я ещё выше там вопросов понаписал! ответьтте плиз и на них кто-нибудь!!! Добавлено @ 09:08 а да, ещё фигня... у меня поток не показывает ХР диспетчер задачь, а вот показывает что прога грузит проц - 90%! это чё- нормально? написано же
90% - это не сильно???? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Поток выполняется пока работает execute
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
дак как мне сделать?
Добавлено @ 09:23 Romikgy блин не увидел... шас гляну! Добавлено @ 09:25 Romikgy а чё он так будет в памяти висеть... и постоянно через интервал проверять и проверять? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
лучше не while true , а while not terminated тогда будет коректное завершение -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Для общения с VCL необходимо юзать Synchronize (если не ошибся в написании
![]() Зы у тя есть
и это очень похоже на таймер ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
через каждые 10 секунд. лучше wait(10000) заменить на sleep(10000) Это сообщение отредактировал(а) alexeis1 - 27.10.2005, 09:38 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
ИМХО разница будет не велика, при суспенде или терминейте поток будет тормозится/убиватся в любом случае. -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
Romikgy чё то не работает! загрузка проца моей прогой 0-1%. видимо поток не висит в памяти а 1 раз выполнился!
я так сделал, добавил ещё while not terminated пробую... alexeis1 while not terminated - указал. а как теперь терминате проток сделать. если я его из главной формы вызываю. и в главной форме делаю close; то и поток будет terminated автоматом? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
вызов terminate приводит только к установке флага terminated в true а не к убиванию потока ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
вот так работает!!! вот тока если форм клозе сделать, выдается ошибка acsess violation и адреса 00000 Добавлено @ 09:50 как это победить? да и ещё, у меня стоит условие if NowDate>=ArcDate then , а работает тока если NowDate>ArcDate, почему-то при= не работает!!! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
нет нужно в onclose формы вызвать mythead.terminate; waitforsingleobject(mythead, infinity); ошибся ![]() mythead.waitfor; Это сообщение отредактировал(а) alexeis1 - 27.10.2005, 09:55 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Аха ![]() Добавлено @ 10:00 Я могу и ошибатся , но mythead это класс потока, какое он имеет отношение к событиям??? ![]()
Я не совсем понял ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||
|
|||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
как раз в waitforsingleobject(mythead, infinity); я и ошибся
верно mythead.waitfor приложение подождет пока поток не завершится затем вызовет mythead.free; и затем завершит работу поправлено
никакого события нет код VCl
Это сообщение отредактировал(а) alexeis1 - 27.10.2005, 10:18 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
RideX |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 2 Всего: 7 |
h2o, думаю ты это хотел?
|
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
RideX Ну нифига ты замутил! с асмом ваше не понятно.
procedure ThreadProc;stdcall; - чё тутхоть делается то? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Guest |
|
|||
Unregistered |
RideX, разобрался! спасибо. всё понятно кроме:
а аналога на делфи нет? а то прото все операции со временем и условия, сравнения мне удобнее делать на делфи!!! я в асме мало что понимаю, а у меня стоко операций сравнения времени, которые берутся из TDateTimePiker'ов, едитов и т.д. на делфи то есть аналогичная функция или средствами делфи этого не сделать? |
|||
|
||||
Гость_h2o |
|
|||
Unregistered |
можно так? :
а всё остальное такое-же. или как??? |
|||
|
||||
Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Можно так ![]() Добавлено @ 14:31 Хотя .... неизвестно что делается в
и что есть
? VCL в потоках лучше не использовать!!! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||||
|
|||||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
hThread := CreateThread(nil, 0, @ThreadProc, nil, 0, ThreadID);
________________ругается вот тут_______^ [Error] Unit1.pas(600): Variable required Это сообщение отредактировал(а) h2o - 27.10.2005, 14:57 --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
А так
CreateThread(nil, 0, @ThreadProc, 0, 0, ThreadID); -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
тоже самое
Добавлено @ 15:14 всё, разобрался! я тормоз! ![]() --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Эт хорошо... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
стоко ошибок при работе с потоками!!! я уже немогу. если кнопкой запускать главную процедуру, то всё работает, а вот если через это грёбаное "расписание" которое в потоке проверяется, стоко ошибок!!!
неужели нет другого способа, буз потоков и таймера. как-то ведь виндовый планировщик работает!!! ![]() --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
нету.
а планировщик работает по тамеру -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
RideX |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 2 Всего: 7 |
Sleep(1) не нужно отсюда выбрасывать, это неправильно! И чем меньше преобразований и привидений типов, тем лучше.
|
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
это вопрос скорее к RideX
а вот почему так, если при запуске проги NowDate<ArcDate, а потом я захожу в SettingsMenu, нахожу поле g1DateArc (это TDateTimePiker), меняю время так, что NowDate>ArcDate, у меня выполняется условие и запускается процедура ProcArchive1CBase; и всё нормально!!! а вот если при запуске проги сразу NowDate>ArcDate, то процедура тоже выполняется ProcArchive1CBase правильно, но вот тока прога у меня зависает! и к форме SettingsMenu не обратиться, прогу не закрыть, а поток работает... чё такое? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Хорошо бы посмотреть что делается в ProcArchive1CBase
Если в ProcArchive1CBase есть обращение к данным общим с програмным потоком то результат будет непредсказуемым. Это сообщение отредактировал(а) alexeis1 - 28.10.2005, 09:23 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
alexeis1 там слишком динный код, связанный с получением параметров из разных компонентов...
я думаю, может это из-за того что я поток в FormCreate запускаю. Может его надо запускать после Application.run а не при создании формы??? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
а может надо синхронизацию делать?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Очень вероятно
Сделай в Form activate (проверь запускается ли Form.activate в первый раз) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
странно, всё заработало! теперь другая фигня.... при выходе из проги, выдаётся ошибка! поток запускаю и завершаю, как писал RideX. может для этого сделать синхронизацию, или как??? чё делать то?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Приведи текст ошибки
![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
RideX |
|
|||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 2 Всего: 7 |
h2o, попробуйте упростить задачу и постепенно усложняя ищите что вызывает ошибки, а то методом научного тыка как-то ненадёжно
![]()
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
В потоках не рекомендуется напрямую обращатся к VCL , можно доигратся до краха проги, имхо.
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
а как тогда быть?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Почитай это
http://forum.vingrad.ru/index.php?showtopic=60076 там много описано по потокам, и здесь тоже есть http://www.drkb.ru/ -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
не рекомендуется ( хотя я таких "нерекомендаций" не слышал ) но и не запрещается
![]() можно Synchronize() использовать -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
http://forum.vingrad.ru/index.php?showtopic=60076 я это уже читал, но ещё раз перечитал! и ещё больше мне стало непонятно!
с синхронизацией вообще не понимаю... она вообще мне нафига нужна? у меня на форму из потока ничего не передаётся, тока - Form1.StringList.Items.Add есть. туда из TZipTV7 инфа передаётся.... а так, у меня с формы берутся настройки. нужна мне синхронизация? я вот думаю, я запускаю в потоке процедуру, которая проверяет условие, если условие выполняется, то из этого потока, из этой процедуры запускается ещё одна процедура, в которой берутся все настройки с формы, идёт работа с Windows и запускается создание архива с помощью TZipTV7. а ведь он свои потоки ещё создаёт вроде или FileStream или что-то такое. тоесть у меня вообще непонятно что с этими потоками! да? так ведь не делают? я всю неправильно сделал? такие алгоритмы как у меня вообще не должны работать, или пофигу что так намешано - всё должно и так работать? вообщем как быть? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
А не кто и не говорил чтозапрещается ![]()
Можно и без... но имхо самый безопасный способ использовать поток от борланда (т.е. класс тред) , и использовать синхронизацию при вызове
хотя наверное в синхро... было бы неплохо засунуть все где есть обращение к VCL ЗЫ а вообще наааамного проще сделать таймер и засунуть в него все что хошь, никаких синхронизаций и др. вещей связаных с потоками, плюс прямой доступ безопасный к VCL и гемору меньше, хотя это твое личное дело.... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||||
|
|||||||
h2o |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
а при таймере мне ведь будет главная моя форма недоступна? у меня в таймере будут цыклы, цыклы и т.д. и к главной форме будет не обратиться, она на вермя действия таймера повиснет?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Нет .... из таймера можно обращатся к любой форме, только правильно прописать обращение, и при таймере как раз и убирается загрузка проца, если конечно твои действия в таймере не долгоиграющие( забирают много времени и ресурсов машины) , тогда без потоков точно не обойтись
![]() А так таймер лучшая альтернатива, чем поток ИМХО. -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
RideX |
|
||||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 2 Всего: 7 |
Примерчик не сложный можно, интересно посмотреть как грохается прога %)
А что, поток загружает процессор больше чем таймер? ![]() |
||||
|
|||||
Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Примерчика нет, но подумай сам , существуют 2 и более потока , и если каждый попытается поменять заголовок у формы, че будет?
Смотря что в потоке .... ожидание какого либо события будет постоянно есть ресурс проца в потоке, в таймере будет только на момент срабатывания его. -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||
|
|||||
RideX |
|
||||||
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 2 Всего: 7 |
Ну, это уж у кого как ![]()
В потоках будет тоже только на "момент срабатывания". |
||||||
|
|||||||
Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Естественно если это использовать то проблем нет, а я говорил о прямом доступе без критических секций, почему я и советовал почитать по потокам!!!!!!!!
Еще раз повторюсь ВСЁ зависит от внутриностей потока ЗЫ и давай завязывать, не продуктивный спор стал! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||
|
|||||
ФЫГ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 29.7.2005 Где: украйна Репутация: 1 Всего: 1 |
цикл будет выполняться параллельно с другими потоками и пока прога не вырубится. Это сообщение отредактировал(а) ФЫГ - 3.11.2005, 09:35 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |