|
움.. 글쎄요.. 잘은 모르지만, 쓰레드 내에서 타이머는 좀 그럴 것 같은데.. TTimer보다는 GetTickCount()로 시간을 측정해서 처리하는게 좋을 것 같습니다... TTimer는 정확하지가 않더군요..
DWORD __stdcall ThreadProc(LPVOID lpParam)
{
DWORD Timer1 = GetTickCount();
DOWRD Timer2 = GetTickCount();
while(1)
{
Sleep(1);
// 0.1 초마다 한 번씩 처리
if(GetTickCount() - Timer1 > 100)
{
Timer1 = GetTickCount();
// 이 밑에 처리할 소스 삽입
}
// 0.5 초마다 한 번씩 처리
if(GetTickCount() - Timer2 > 500)
{
Timer2 = GetTickCount();
// 이 밑에 처리할 소스 삽입
}
}
return 0;
}
앙마 님이 쓰신 글 :
: 동적으로 생성된 쓰레드 내부에서 동적 타임머 생성할수 있을까요? 생성은 되는데 동작이 안돼는거 같은데....이상해서 질문합니다..
:
: for (int i =0; i< Count ; i++)
: {
: MIPThread[i]=new TMIPThread(true);
: MIPThread[i]->MSP->HostAddr(Ma[i].addr);
: // 이하 생략..
:
: } // 이렇게 동적으로 쓰레드 생성을 했구요...
:
: 쓰레드 생성자에.. 타임머 동적으로 생성했거덩엽..
: Priority = tpTimeCritical;
: MIP= new MultiIP();
:
: Timer1= new TTimer(NULL);
: Timer2=new TTimer(NULL);
: Timer1->OnTimer=OnTimer1;
: Timer2->OnTimer=OnTimer2;
: Timer1->Interval=100;
: Timer2->Interval=100;
:
:
: 그리고 Excute에서....Timer1,2를 True시켰는데...동작이 안돼는거 같아서염.. 쓰레드 내부에서 타임머 사용할 수 없나요??? 타임머 이벤트를 사용하려고 하는데.....
|