![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нитка.....
markers © (2004-11-24 15:00:00)Народ, подскажите пли как сделать простую нитку (Поток) Есть одна функция которая крутится в таймере, она занимает некоторое время (К сожаению)...... Решил сделать в отдлном потоке (Всю жизнь боялся этого момента;() Но как сделать осалютно НЕ ЗНАЮ! Желательно без дополнительного юнита (И так уже пять)... Или хотя бы статейку.... Кстати желательно хоть маленький примерчик;) Плииииз!;) аранее спасибо;)
Alexander Panov (2004-11-24 16:26:00) [1]markers © (24.11.04 15:34) [5]
Так то работает, но что-то больно сильно стало тормоить..... и в этом потоке сделал уже процессмессадж, всё равно тормазит больше чем было раньше, моет из-а того, что процедуру я в этой нитке выполняю не свою, а от компонента, а там это видимо не предусмотрено чтоли? Подскажите пли;)
Так все зависит от того, что ты хочешь сделать.
И тем паче от компонента, "процедуру" которого ты хочешь выполнить.
Digitman (2004-11-24 16:25:00) [2]
> markers
поясни как ты себе предствляешь рабору мультизадачной ОС..
wal (2004-11-24 16:23:00) [3]У компонента исходники имеются?
markers (2004-11-24 16:17:00) [4]Лично мне не важно что это будет, для меня главное что чере 1000 милисикунду делася пинг фукцией соответствующего компонента, и чтоб во время пинга програ не вешаась, работали минюшки и все окна, бе тормозов во время выполения....
wal (2004-11-24 15:58:00) [5]А нитка это thread или fiber?
markers (2004-11-24 15:37:00) [6]извиняюсь за скушанные буквы, клаву чистить надо :(
markers (2004-11-24 15:36:00) [7]то Digitman То что на это тоже следовательно нужно время, но тогда не удет тормозить основной код..... И форма не будет тормоить в этом вся и необходимость
markers (2004-11-24 15:34:00) [8]Статьи конечно хорошо, но я себе не ставлю задачу поностью обучится ниткам.... Мне пока достаточно кусочка....
2 Alexander Panov Так то работает, но что-то больно сильно стало тормоить..... и в этом потоке сделал уже процессмессадж, всё равно тормазит больше чем было раньше, моет из-а того, что процедуру я в этой нитке выполняю не свою, а от компонента, а там это видимо не предусмотрено чтоли? Подскажите пли;)
Digitman (2004-11-24 15:28:00) [9]
> она занимает некоторое время .. Решил сделать
> в отдлном потоке
.. при этом наивно полагая, что отдельный поток исполняется святым духом, а не ОС, и посему его исполнение не занимает никакого времени ...
так ?
Leonid Troyanovsky (2004-11-24 15:22:00) [10]
> markers © (24.11.04 15:00)
> Народ, подскажите пли как сделать простую нитку (Поток)
> Есть одна функция которая крутится в таймере, она занимает
> некоторое время (К сожаению)...... Решил сделать в отдлном
> потоке (Всю жизнь боялся этого момента;() Но как сделать
> осалютно НЕ ЗНАЮ! Желательно без дополнительного юнита (И
> так уже пять)... Или хотя бы статейку.... Кстати желательно
> хоть маленький примерчик;) Плииииз!;) аранее спасибо;)
Tutorial on thread programming in Delphi:
http://www.pergolesi.demon.co.uk/prog/threads/ToC.html
http://www.sklobovsky.com/community/index.html
Handling exceptions in a thread:
http://community.borland.com/article/0,1410,10452,00.html
by Tolik Tentser:
http://www.compress.ru/Article.asp?id=2164
markers (2004-11-24 15:18:00) [11]Сенкс;)
Сейчас попробую;)
Alexander Panov (2004-11-24 15:16:00) [12]
type
SThread= class(TThread)
protected
procedure Execute; override;
public
constructor Create;
end;
constructor SThread.Create;
begin
inherited Create(True);
FreeOnTerminate := True;
Resume;
end;
procedure SThread.Execute;
begin
while not Terminated do
begin
sleep(1000);
end;
end;
PS. писал прямо здесь, поэтому опечатки могут быть.