您的位置:首页 > 其它

VC中创建线程的方法

2013-04-09 14:34 260 查看
创建一个线程的方法:
创建线程使用CreateThread
The CreateThread function creates a thread to execute within the address space of the calling process.

HANDLE CreateThread(

                                       LPSECURITY_ATTRIBUTES lpThreadAttributes,  

                                         //指向SECURITY_ATTRIBUTES结构体的指针。

                                        

                                        DWORD dwStackSize,   //指定初始提交栈的大小

                                         LPTHREAD_START_ROUTINE lpStartAddress,

                                        //由线程执行,表示线程的起始地址,指定线程入口函数,

                                       //该入口函数的参数类型以及返回类型要与ThreadProc()函数声明的类型要保持一致

                                        LPVOID lpParameter,   //指定一个单独的值传递给线程

                                        DWORD dwCreationFlags, //指定控件线程创建的附加标记

                                        LPDWORD lpThreadId );    //指向一个用来接收线程的标识符变量

vc终止线程有三种方法:   
   1.线程可以在自身内部调用AfxEndThread()来终止自身的运行   

    

   2.可以在线程的外部调用BOOL    TerminateThread(    HANDLE    hThread,    DWORD    dwExitCode    )来强行终止一个线程的运行,   

   然后调用CloseHandle()函数释放线程所占用的堆栈   

   TerminateThread会有资源泄漏,不要万不得已,不要用这个函数

     DWORD code;

   if(GetExitCodeThread(MonitorComm,&code))   //MonitorComm 你创建的线程句柄

    if(code==STILL_ACTIVE)

    {

      TerminateThread(MonitorComm,0);

      CloseHandle(MonitorComm);

    }

    这样就安全了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: