Вобщем на Делфях легко работать с потоками =))))
Идешь в File->New->Other...->Thread Object
Вводишь Class Name ( типа TMyThread =))) )
Тыкаешь ок и уже класс потока есть =) Уже есть процедура Execute - она выполняется сразу после создания потока....
Так же есть { Important: ... } там говорится, что просто так к компонентам не добраться, а нужно синхранизировать доступ...
т.е. создаешь процедуру, в которой делается что-то с компонентом, а потом из Execute вызываешь Synchronize(ProcedureName)...
У потока есть свойство FreeOnTerminate:boolean - удалять при остановке или нет, и свойство OnTerminate:TNotifyEvent - процедура, которая вызывается при остановке потока....
Еще, если ты пишешь процедуры Create и OnTerminate, то в них Synchronize не вызываешь!!! а то зависнешь =))))
А в программе юзать тоже лекго:
Код:
var
Thr:TMyThread;
begin
Thr:=TMyThread.Create(false);
...
Thr.Suspend;
...
Thr.Resume;
...
Thr.Terminate;
...
end;
В Create передается параметр Boolean, который сигнализирует, создать поток приостановленным, или сразу запускать.... (если приостановленным, то потом надо вызвать Thr.Resume)
Thr.Susdend - приостановить выполнение
Thr.Resume - запустить
Thr.Terminate - вырубить