|
쓰레드 클래스가 TThread를 상속받으셨죠?
만약 TThread를 상속받은 클래스라면?
그러면 TNotifyEvent 타입의 OnTerminate 라는 프로퍼티가 있습니다.
OnTerminate 에 TNotifyEvent 형의 메소드를 설정해주시면 됩니다.
-----------------샘플------------------------------------
class TMyThread : public TThread
{
public:
__fastcall TMyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
this->OnTerminate=ThreadExit;
}
void __fastcall TMyThread::ThreadExit(TObject *Sender)
{
ShowMessage("ThreadExit 죽는다...");
}
void __fastcall TMyThread ::Execute()
{
Form1->Caption="쓰래드 실행";
}
};
void __fastcall TForm1::TeminateMyThread(TObject *Sender)
{
ShowMessage("Form1 메소드");
}
//-------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// 기본 TMyThread *tred=new TMyThread(false);
//또는 ?
TMyThread *tred=new TMyThread(true);
tred->OnTerminate=TeminateMyThread;
tred->Resume();
}
//---------------------------------------------------------------------------
그럼..
시녕tm 님이 쓰신 글 :
: 안녕하세요
:
: Thread를 사용하다가 Terminate 시킬 때 Terminate() 라는 멤버 함수를 사용하는데요.
:
: 이 함수가 호출된 후에 Thread가 메모리 상에서 실제로 삭제되기 전에
:
: 최종으로 호출 되는 가상함수라던지 잡아서 쓸만한 이밴트라던지 그런거가 혹시 있나요?
:
: Thread에서 사용한 변수들이나 메모리 할당된 놈들을
:
: 그 함수에서 모조리 처리하고 싶은데....
:
: 혹시 좋은 방법 아시는 분은 알려주시면 감사하겠습니다.
|