, використовуются функцію Windows API TerminateThread. p> Примітка
Метод Terminate автоматично віклікається І з деструкції об'єкту. Потік - об'єкт VCL чекатіме, поки завершитися потік - об'єкт операційної системи. Таким чином, ЯКЩО Потік НЕ уміє завершуватіся коректно, виклик деструкції потенційно может привести до зависання всієї програми.
Ще одна Корисна властівість:
property FreeOnTerminate: Boolean;
Если це властівість рівне True, то деструкція потоку буде віклікана автоматично после его завершення. Це Дуже зручне для тихий віпадків, коли ві в своїй Програмі НЕ упевнені точно, коли самє завершитися Потік, и Хочете використовуват его за принципом В«вістрілів и забувВ» (fire and forget).
function WaitFor: Integer;
Метод WaitFor призначеня для сінхронізації и дозволяє одному потоку дочекатіся моменту, коли завершитися Інший Потік. Если ві усередіні потоку FirstThread пишіть код
Code: = SecondThread. WaitFor;
то це означає, что Потік FirstThread зупіняється до моменту завершення потоку SecondThread. Метод WaitFor повертає код Завершення очікуваного потоку (дів. властівість Returnvalue).
property Handle: THandle read FHandle;
property ThreadID: THandle read FThreadID;
Властивості Handle и ThreadID дають програмісту безпосередній доступ до потоку засобой API Win32. Если розробник хоче звернута до потоку и управляти ним, минулої возможности класу TThread, значення Handle и ThreadID могут буті вікорістані як аргументами функцій Win32 API. Наприклад, ЯКЩО програміст хоче перед продовженого Виконання Додатках дочекатіся Завершення відразу декількох потоків, ВІН винен віклікаті функцію API waitForMuitipieObjects; для ее виклику необхідній масив дескріпторів потоків.
property Priority: TThreadPriority;
Властівість Priority дозволяє Запитати и Встановити Пріоритет потоків. Пріоритети потоків в деталях опісані Вище. Допустимі значення пріорітету для об'єктів TThread є tpidle, tpLowest, tpLower, tpNormai, tpHigher, tpHighest и tpTimeCritical.
procedure Synchronize (Method: TThreadMethod);
цею метод відносіться до секції protected, тоб может буті вікліканій Тільки з нащадків TThread. Delphi надає програмісту метод Synchronize для
безпечного виклику методів VCL усередіні потоків. Щоб унікнуті конфліктніх СИТУАЦІЙ, метод synchronize Дає гарантію, что до шкірного об'єкту VCL одночасно має доступ Тільки один Потік. Аргумент, передаванням в метод Synchronize, - це имя методом, Який віробляє звернення до VCL; виклик Synchronize з ЦІМ параметром - це ті ж, что и виклик самого методу. Такий метод (Класу TThreadMethod) не винних мати ніякіх параметрів и не винних повертаті ніякіх значення. Наприклад, в основній ФОРМІ Додатках нужно Передбачити функцію
procedure TMainForm. SyncShowMessage; begin
ShowMessagedntToStr (ThreadListl. Count));// Другие звернення до VCL
end;
а в потоці для показу ПОВІДОМЛЕННЯ писати НЕ
ShowMessage (IntToStr (ThreadListl. Count));
и даже НЕ
MainForm. SyncShowMessage;
а Тільки так:
Synchronize (MainForm. SyncShowMessage);
Примітка
Віробляючі будь-яке звернення до об'єкту VCL з потоку, Переконайся, что при цьом вікорістовується метод Synchronize; інакше результати могут віявітіся непередбачуванімі. Це вірно даже в тому випадка, ЯКЩО ві вікорістовуєте засоби сінхронізації, опісані нижчих.
procedure Resume;
Метод Resume класу TThread віклікається, колі Потік відновлює Виконання после зупинка, або для явного запуску потоку, створенного з параметром CreateSuspended, рівнім True. p> procedure Suspend;
Виклик методу Suspend пріпіняє Потік з можлівістю повторного запуску Згідно. Метод suspend пріпіняє Потік Незалежності від коду, віконуваного потоком в Сейчас; Виконання продовжується з точки останову.
property Suspended: Boolean;
Властівість suspended дозволяє програмісту візначіті, чи не припиненням Потік. За помощью цієї Властивості можна такоже запускаті и зупіняті Потік. ВСТАНОВИВ властівість suspended в значення True, ві здобудете тієї ж результат, что и при виклику методу Suspend - припиненням. Навпаки, установка Властивості Suspended в значення False відновлює Виконання потоку, як и виклик методу Resume.
property ReturnValue: Integer;
Властівість ReturnValue дозволяє взнати и Встановити значення, а что повертається потоком после его завершення. Ця величина Повністю візначається користувачем. За умовчанням Потік повертає нуль, альо ЯКЩО програміст захочу Повернути іншу величину, то просте встановлення заново Властивості ReturnValue усередіні потоку дозволити здобудуть Цю інформацію іншім потокам. Це, Наприклад, может стать в нагоді, ЯКЩО усередіні потоку вініклі проблеми, або за помощью Властивості ReturnValue нужно Повернути число не минув орфографічну пере...