13,825
社区成员
发帖
与我相关
我的任务
分享
class TTask
{
public:
TTask(){MessageBox(0,"Construction","information",MB_OK);}
~TTask(){ MessageBox(0,"Destruction","information",MB_OK);};
protected:
static __stdcall unsigned long ThreadFunc(void *pParam=NULL)
{
while(1){
MessageBox(0,"thread function","warning",MB_OK);
}
}
public:
unsigned long Excute(void){
unsigned long ulThreadID =-1;
::CreateThread( 0,0,ThreadFunc,0,0, &ulThreadID );
return ulThreadID;
}
};
///////////////////////////////////////////////////////////////////
TTask* pTask=0;
pTask =new TTask();
if(pTask){
pTask->Excute();
}
/*
同僵哥意见,他已经说过了,线程函数如果是类的成员函数,那么这个成员函数需要是
静态方法才可以。
*/
DWORD __stdcall _ReadBlock(void *Param);//声明
class TTask
{
private:
DWORD Threads[499];
DWORD __stdcall ReadBlock(void *Param); //HINTERNET Hnd,DWORD StartPos,DWORD EndPos
public:
TTask(Cardinal ThreadCout)
{
// 将任务分配给各线程
Cardinal i;
for (i=1;i=ThreadCout;i++) {
//CreateThread(NULL,0,&_ReadBlock,NULL,0,&Threads[i]);
}
}
};
DWORD __stdcall _ReadBlock(void *Param)
{
TTask *Task =(TTask *)Param;
return Task->ReadBlock(NULL);
}
DWORD __stdcall _thread_proc(void *Param)
{
MessageBox(GetActiveWindow(),"I am a thread!","Message",MB_OK);
return 0;
}
DWORD threadId;
HANDLE thread = CreateThread(NULL,0,_thread_proc /*Address of the thread procedure */,NULL /*Thread Parameter*/,0,&threadId);
CloseHandle(thread);