Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СПО2.doc
Скачиваний:
45
Добавлен:
02.05.2014
Размер:
515.07 Кб
Скачать

Приложение

Описание класса TThread ( Находится в Classes.hpp ) class DELPHICLASS TThread; class PASCALIMPLEMENTATION TThread : public System::TObject { typedef System::TObject inherited; private: unsigned FHandle; unsigned FThreadID; bool FCreateSuspended; bool FTerminated; bool FSuspended; bool FFreeOnTerminate; bool FFinished; int FReturnValue; TNotifyEvent FOnTerminate; TThreadMethod FMethod; System::TObject* FSynchronizeException; System::TObject* FFatalException; void __fastcall CheckThreadError(int ErrCode)/* overload */; void __fastcall CheckThreadError(bool Success)/* overload */; void __fastcall CallOnTerminate(void); TThreadPriority __fastcall GetPriority(void); void __fastcall SetPriority(TThreadPriority Value); void __fastcall SetSuspended(bool Value); protected: virtual void __fastcall DoTerminate(void); virtual void __fastcall Execute(void) = 0 ; void __fastcall Synchronize(TThreadMethod Method); __property int ReturnValue = {read=FReturnValue, write=FReturnValue, nodefault}; __property bool Terminated = {read=FTerminated, nodefault}; public: __fastcall TThread(bool CreateSuspended); __fastcall virtual ~TThread(void); virtual void __fastcall AfterConstruction(void); void __fastcall Resume(void); void __fastcall Suspend(void); void __fastcall Terminate(void); unsigned __fastcall WaitFor(void); __property System::TObject* FatalException = {read=FFatalException}; __property bool FreeOnTerminate = {read=FFreeOnTerminate, write=FFreeOnTerminate, nodefault}; __property unsigned Handle = {read=FHandle, nodefault}; __property TThreadPriority Priority = {read=GetPriority, write=SetPriority, nodefault}; __property bool Suspended = {read=FSuspended, write=SetSuspended, nodefault}; __property unsigned ThreadID = {read=FThreadID, nodefault}; __property TNotifyEvent OnTerminate = {read=FOnTerminate, write=FOnTerminate}; };

Основные свойства и методы класса TThread

Свойство

Описание

FreeOnTerminate

Указывает, будет ли объект потока автоматически удален при завершении работы потока

Handle

Дескриптор потока, для вызова API-функций

Priority

Задает приоритет потока

ReturnValue

Определяет значение, возвращаемое другим потокам, после завершения текущего потока

Suspended

Указывает, приостановлено-ли выполнение потока

Terminated

Определяет, может ли прекращаться выполнение потока

ThreadID

Определяет идентификатор потока

Метод

Описание

DoTerminate()

Вызывает обработчик события OnTerminate() без прекращения работы потока

Execute()

Содержит код, который будет выполнен при запуске потока

Resume()

Возобновляет работу приостановленного потока

Suspend()

Приостанавливает работу потока

Synchronize()

Выполняет вызов в первичном потоке библиотеки VCL

Terminate()

Сигнализирует о прекращении выполнения потока

WaitFor()

Ждет прекращения работы потока

есть и другие менее используемые свойства и методы.

Предупреждение: исключения, которые возбуждены, но не перехвачены в TThread потомке при выполнении в методе Execute могут стать причиной access violations, когда Вы выполняете приложение вне интегрированной среды разработки. Вы можете принять меры против этого access violation, обеспечив метод Execute блоком try.._finally, который включает тело этого метода. Для выполнения работы потребуется получения r, g, b цветов. Можно использовать следующий код .

#include "GlSkel.h"

r= (GLbyte)GetRValue(bitmap->Canvas->Pixels[i][j]);

g= = (GLbyte)GetGValue(bitmap->Canvas->Pixels[i][j]);

b= (GLbyte)GetBValue(bitmap->Canvas->Pixels[i][j]);

где i, j - координаты пикселя.

Отчет

Отчет должен содержать описание программы и анализ полученных результатов. Защита студентом работы производится в установленном порядке при личном собеседовании с преподавателем. Студент обязан ответить на любой вопрос преподавателя, касающийся содержания представленного отчета.