Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Threads, Threads - как создать потоки? 
:(
    Опции темы
Romikgy
Дата 17.1.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Guedda @ 17.1.2006, 14:15 Найти цитируемый пост)

Я лишь цитирую. Но и придерживаюсь этого мнения.
Если треды не сильно нужны, то лучше ProcessMessages использовать.

Дело каждого свое


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Демо
Дата 17.1.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Barovskiy @ 17.1.2006, 15:59 Найти цитируемый пост)

А синхронизация у меня не получается :-(


А из API-Thread у тебя и не получится синхронизировать. Только если использовать синхронизацию метоодом посылки сообщений.


--------------------
    
PM MAIL ICQ Skype   Вверх
Barovskiy
Дата 17.1.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Цитата(Guedda @ 17.1.2006, 15:15 Найти цитируемый пост)

Если треды не сильно нужны, то лучше ProcessMessages использовать.

Они нужны так как ProcessMessages совершенно не спасает .... и плюс я бы хотел чтоб за один раз несколько потоков было .... тогда задача еще быстрее будет выполняться


Цитата(Guedda @ 17.1.2006, 15:15 Найти цитируемый пост)

И еще почитай http://forum.vingrad.ru/index.php?showtopic=60076 это очень помогает!

Обязательно почитаю сейчас


Цитата(Guedda @ 17.1.2006, 15:15 Найти цитируемый пост)

не следует обращаться к свойствам и методам компонентов VCL...

А как же тогда быть если не управлять VCL


PM MAIL   Вверх
Albinos_x
Дата 17.1.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Barovskiy @ 17.1.2006, 16:44 Найти цитируемый пост)

А как же тогда быть если не управлять VCL

или создавать класс Thread или синхрогизировать через посылку сооьщений
Цитата

Я уже пробовал .... меня дельфи зависает намертво как только я запускаю поток 
и через 20 минут мне приходится уже через диспечера валить и дельфи и прилажение .

можно в критических местах расставить мессажебоксы и по их появлениям отследить выполнение кода... соответственно если какойто не показался, хотя долже был... значит где-то перед ним возникла ошибка...
Добавлено @ 18:21
[яуоте]
если просто открыть и закрыть прогу то ничего не выпригивает
[/яуоте]
а если досрочно прервать выполнение, ошибка вылетает?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Демо
Дата 17.1.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Barovskiy @ 17.1.2006, 02:20 Найти цитируемый пост)

Просто твой не много не подходит ...


Чем пример не подходит?

Цитата(Barovskiy @ 17.1.2006, 02:20 Найти цитируемый пост)

я бы хотел его потом еще приминить в другие примеры
чтоб просто поменять внутренности цикла и прога готова для другово :-)
что скажешь ??? можешь помочь накидать пример , просто с пустым циклом выполнения...


Дело в том, что потоки пишутся под задачу, и универсальный шаблон сделать нельзя.
Универсальный уже есть - File-->New-->Other-->Thread Object.

Но это естественно, только лишь самая примитивная заготовка.


--------------------
    
PM MAIL ICQ Skype   Вверх
Barovskiy
Дата 17.1.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 17.1.2006, 18:18 Найти цитируемый пост)

ожно в критических местах расставить мессажебоксы и по их появлениям отследить выполнение кода... соответственно если какойто не показался, хотя долже был... значит где-то перед ним возникла ошибка...


Все проходит гладко, в процессе работы, все логи я сохраняю в лог лист


alexeis1
Цитата(alexeis1 @ 17.1.2006, 14:50 Найти цитируемый пост)

Barovskiy с F7 и у меня были проблемы но при использовании
брекпоинтов (ставлю кучу) и F4 для перескока между ними удавалось
отладить без зависания ( т.е. первую точку прошел - снимаем, вторую и т.д.)


в коде все нормально проходит .... а вот как закрываю прогу .... бац АшыПка .....

Может я чтото упусти л.....

Цитата(alexeis1 @ 17.1.2006, 15:16 Найти цитируемый пост)

Цитата

А синхронизация у меня не получается  smile

а по подробней smile


Синхронизация не получается потому что не очень разбираюсь в потоках и если я сейчас начну создавать отдельный модуль пас с потоком то потом как мне склеить VCL ? я не смогу разбить VCL

Саму связь и управление не смогу сделать - уже пробовал не получилось, поэтому я хотел загнать сам цикл в поток в принцепи получилось, но вот меня напрягает сама ошибка после выхода прграммы, это не граммотрно чтото я сделал ...

многопоточность у меня не получится сделать таким образом...
ну хотябы одним потоком чтоб прога не висла и без ошибок.

Может это у меня ошибка в самом цикле????
чтоя мог такого написать с VCL что вылетает инвалид хэндл при закрытии проги????

может чтото еще надо вписать в раздел
Код

finally

?????



С Вуажением, БагМэйкер

))))))))))))


PM MAIL   Вверх
Barovskiy
Дата 17.1.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Цитата(Демо @ 17.1.2006, 18:39 Найти цитируемый пост)


Чем пример не подходит?


Твой пример Супер!!!!!!
Просто помимо проверки IP я хочу туда засунуть другие возможности ....

Например загнать прогу в трей и чтоб она проверяла все мои почтовые ящики одним заходом, и выводила мне колличество мои писем....
а если я сейчас загоню это, то мне придется для каждого почтового ящика вешать по одному ПОП компоненту, а если у меня ящиков 10 ... это будет конечно труба.... вот я и хотел повесить один компонент поп и через порверять одним заходом все ящики из настроек ....

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

Цитата(Albinos_x @ 17.1.2006, 18:18 Найти цитируемый пост)

а если досрочно прервать выполнение, ошибка вылетает?

Прерываю - все нормально останавливается, а если закрою - то тоже самое вылетает,

ошибка вылетает в любом случае после закрытия прграммы если я хоть раз запускал цикл

проблема скорей всего с синхронизацией VCL - но как мне ее сделать не понимаю, в примерах теряюсь, так как понятия не имею что куда писать :-(
PM MAIL   Вверх
Демо
Дата 17.1.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата

Просто помимо проверки IP я хочу туда засунуть другие возможности ....


Для каждого варианта тебе придется решать свои задачи и проблемы для многопоточного программирования.

Общие рецепты слишком общий, чтобы можно было одно решение приспособить для любой задачи.

Многопоточное программирование не так уж и сложно, но перед кдированием сложных задач все равно придется разобраться подробно в этой теме.

Даже с готовой библиотекой - все равно придется разбираться.

Цитата

unit Gala;

{ Библиотека параллельного программирования Gala.
  Версия 1.04 (beta)
  Свободно распространяется с исходными кодами
  www.dps.aeed.tpu.edu.ru/gurin/gala/index.htm

  Сергей Гурин.
  Томск, Политехнический университет,
  кафедра электрических станций.
  E-mail:  [email protected] - рабочий
            [email protected]    - домашний
  HomePage: www.dps.aeed.tpu.edu.ru/gurin/gsv/index.htm
~ The library of concurrent programming Gala
  Version 1.04 (beta)
  Freeware
  www.dps.aeed.tpu.edu.ru/gurin/gala/index.htm

  Sergey Gurin.
  Russia, Tomsk, Polytechnic university,
  Department of Power Stations
  E-mail:  [email protected] - at work
            [email protected]    - at home
  HomePage: www.dps.aeed.tpu.edu.ru/gurin/gsv/index.htm
}



К сожалению, сайт уже не работает.
Библиотеку можешь взять вот здесь:
ftp://ftp.almar.net.ru/pub/GalaLib.zip


--------------------
    
PM MAIL ICQ Skype   Вверх
Barovskiy
Дата 17.1.2006, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Демо

Спасибо за пример!!!!!!!!!!!!!!!!!! Супер!!!!!!!!!! буду разбираться с ним, можеь что получится!!!!!!!!!!
PM MAIL   Вверх
Barovskiy
Дата 18.1.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Кажетсяы вот из-за этого вылетает ошибка при закрытии программы

Код

except
                    on E: Exception do
                       begin 
                       Form1.memo1.Lines.Add(E.Message);
                        Form1.Edit3.Text:=(E.Message);
                      end;
               end;

                        if Form1.edit3.Text= // сравнивание ошибки 



PM MAIL   Вверх
Albinos_x
Дата 18.1.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



врят ли, если до этого ошибки не возникли...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Alexeis
Дата 18.1.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



except это уже обработка
ошибка возникает между try и except


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Barovskiy
Дата 18.1.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 15.1.2006

Репутация: нет
Всего: нет



Цитата(alexeis1 @ 18.1.2006, 17:33 Найти цитируемый пост)

except это уже обработка
ошибка возникает между try и except


Но там все нормально ....
Почему, если поставить все действие просот на кнопку то все нормально, программа закрывается без ошибки (((((
как записываю в поток то после закрытия проги вылетает ошибка

The exception unknown software exception (0x0eedfade) occurred in the application at location 0x781eb33

а после нее вылетает та ошибка которую я выкладывал раньше


exception - и мне кажется что из-за этого ....

PM MAIL   Вверх
Alexeis
Дата 18.1.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



А если запустить тот же поток но с другим действием скажем
for от 1 до 100000000 - ошибка повторится.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guedda
Дата 18.1.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(Barovskiy @ 18.1.2006, 18:17)
как записываю в поток то после закрытия проги вылетает ошибка

Просто напросто поток не успевает выгрузиться.
Попробуй ставить проверку на выгрузку потока.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0654 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.