|
대충 아래 쏘스 보시면 감이 오실텐데..
일단 쓰레드에서 사용하려는 변수들을 Public으로 선언하시고..
아래처럼 쓰레드 함수 실행할때 this포인터를 넘겨줘서 참조하게 하면 됩니다.
이런 방법은 씨빌더에서 TThread클래스를 만들때도 사용됩니다. ^^
ULONG RTFCNDCL RunRun(void * pObject)
{
J_Thread *p = (J_Thread*)pObject;
p->Run(); // 내부 함수 하나를 쓰레드로 실행하는 겁니다.
// 아니면 여기에 객체내의 변수가지고 작업을 하셔도 상관없죠.
//실행을 끝내고 J_Thread객체를 여기서 삭제해 준다.
delete p;
return 0;
}
/// 콤포넌트 를 J_Thread라고 하죠..그리고 Thread를 실행하려고 Create함수를 만들었다면
이렇게 되겠죠..
bool J_Thread::Create(char *name, bool suspend, int priority)
{
m_Handle = CreateThread(0, 0, RunRun, this, CREATE_SUSPENDED, &m_Id);
}
|