使用TTHread如何在没有任务时暂停。 - C++ Builder / Windows SDK/API
我的TThread有excute
void __fastcall TRecvSocketThread::Execute()
{ char FHeader[4]; //数据包头读取到暂存。
int Header;
int len;
DWORD l;
//---- Place thread code here ----
while (!Terminated)
{//任务查询,有任务或是任务没有下达成功,如何等待?
//我用了
if (NoTask){
Sleep(10);
conntinue;
}
}
}
主线程分配任务的地方
环形缓冲区有写保护功能。
SetTask(TaskBuffer,NewTask);
if( pTackThread->Suspended) pPackThread->Resume();//判断任务是否执行,没有执行唤醒。
问题是用了Sleep比如说是50000ms 时,必须等那个时间过后才继续执行很怪呀。!!
[解决办法]
... if (NoTask){ Suspend(); } ...