![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Barovskiy |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
Всем привет!!!!!!!!!!!!
У меня такой вопрос - как можно загнать в отдельный поток определенное действие?? например: мне нужно загнать цикл try begin Yield; application.ProcessMessages; ........... except ............. finally ............... end; в потоки как это сделать и как определить количество потоков???? программа просто очень виснет и очень медлено выполняет действия ((((((((((( а с потоками я не рабтал кто может мне объяснить популярно как загнать все это в поток????? Заранее благодарю!!!!!!!!! |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Вот самый простой пример. Причем без использования класса TTread.
Это сообщение отредактировал(а) Poseidon - 15.1.2006, 03:46 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Barovskiy |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
2 Poseidon ,
спасибо, за ответ!!!!!!!! а как определить кол-во потоков???? к пример усделать 100 потоков чтоб за один раз 100 циклов прошло????? |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Экстремал
![]()
но вариант не идеален. И более того, я бы для твоей задачи все же воспользовался бы TThread. Там хоть синхролизировать можно потоки. Хотя и этот вариант может прокатить -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
FRAGNATIC |
|
|||
![]() ..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
||||
|
||||
Barovskiy |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
2 Poseydon
![]() 2 FRAGNATIC http://forum.vingrad.ru/index.php?showtopic=60076 Отличный материал!!!!! Спасибо!!!!!!!!!! |
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
при выполнении в отдельном потоке на этой строчке могут возникать ошибки.... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Barovskiy |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
2 Albinos_x
А как лучше сделать чтоб прога не тормазила???? |
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
так если ты запустишь это в отдельном потоке, то она и так тормозить не будет ... поэтому эта строчка автомарически должна отпасть... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Barovskiy |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
у меня не компилируется ((((((
внутри цикла я обращаюсь к компонентам например
как мне можно работать с компонентами внутри процедуры??? в цикле идет счет выполненых операций....
вобщем ругается на все компоненты (((((((( как это лечить ?????? |
||||||
|
|||||||
Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
ты должен указать "чей компанент":
но здесь тоже могут возникать глюки... здесь лучше делать:
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
Barovskiy |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
я сделал так
скопилилось почти нормально за исключением [Warning] Unit1.pas(126): Variable 'Label6' might not have been initialized прога запускается нормально, но как только нажимаю на кнопку для пуска потока - Вылетает ошибка что какой то кусок памяти не может быть рид .... как мне инициализировать - указать чей компонент ???? |
||||
|
|||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
А как ты создаёшь этот:
var RxLabel6: TRxLabel; ? -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Barovskiy |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 15.1.2006 Репутация: нет Всего: нет |
||||
|
||||
FRAGNATIC |
|
|||
![]() ..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
nil те надо var Label6: TLabel; ... begin label6:=TLabel.Create(nil); Это сообщение отредактировал(а) FRAGNATIC - 15.1.2006, 19:16 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |