Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
80<br />
Свойства и методы объектов Thread<br />
Таблица 16<br />
Свойство, метод<br />
FreeOnTerminate<br />
Handle<br />
Priority<br />
ReturnValue<br />
Suspended<br />
Terminated<br />
ThreadID<br />
DoTerminate ()<br />
Execute ()<br />
Resume ()<br />
Suspend ()<br />
Synchronize ()<br />
Terminate ()<br />
WaitFor ()<br />
Наз<strong>на</strong>чение<br />
Автоматическое удаление потокового объекта по завершении работы<br />
потока<br />
Дескриптор потока для вызова функций API<br />
Приоритет потока<br />
Возвращаемое з<strong>на</strong>чение по завершении работы потока<br />
Приз<strong>на</strong>к приостановки работы потока<br />
Приз<strong>на</strong>к прекращения работы потока<br />
Идентификатор потока<br />
Вызов обработчика события OnTerminate без прекращения работы<br />
потока<br />
Код, выполняемый при запуске потока<br />
Возобновление работы приостановленного потока<br />
Приостановка работы потока<br />
Синхронизация обращения к библиотеке VCL в первичном потоке<br />
Прекращение работы потока<br />
Ожидание прекращения работы потока<br />
В метод Execute программист должен поместить код, который будет<br />
выполняться после загрузки потока в фоновом режиме по отношению к первичному<br />
потоку. Кроме того, в метод Execute обычно включают еще три выражения:<br />
if (Terminated) break;<br />
FreeOnTerminate = true;<br />
// для прекращения работы потока<br />
// для автоматического освобождения памяти<br />
// потоком после завершения его работы<br />
Synchronize (имяФункции); // для синхронизации доступа к объектам<br />
// библиотеки VCL, за исключением<br />
// графических объектов<br />
Функцию, имя которой выступает в качестве аргумента метода Synchronize,<br />
объявляют и определяют в этом же файле потока, <strong>на</strong>пример:<br />
void __fastcall TThread1::Display () { Form1–>Label1–>Caption = “Пример”; }<br />
Для работы с формой в файл кода потока включают заголовок файла<br />
формы. Если в методе Execute присутствует код работы с графикой, его обрамляют<br />
выражениями, блокирующими вывод графики из других потоков:<br />
Form1–>Image1–>Сanvas1–>Lock ();<br />
Вывод графики <strong>на</strong> канву<br />
Form1–>Image1–>Сanvas1–>Unlock ();