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);
}
这样就安全了
创建线程使用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);
}
这样就安全了
相关文章推荐
- vc创建一个线程和销毁的方法
- VC++ 数个创建线程方法的不同点
- VC中创建多个线程的方法
- vc创建一个线程的方法:
- vc创建一个线程的方法
- VC中创建多个线程的方法
- vc 创建线程的方法
- VC中关于创建一个新的线程的方法
- java 2中创建线程方法
- 在VC中如何创建多个线程
- VC中判断目录,文件是否存在,创建目录,求目录或文件大小的方法
- java基础<线程>总结(线程概念、线程创建方式、线程间通信、线程重要方法)
- 创建线程的方法2
- java创建线程的两种方法区别
- 创建线程的方法一:继承Thread类
- “从不是创建XX控件的线程访问它”错误的解决方法!
- 创建线程的方法二
- 在VC中创建DLL文件的方法步骤
- VC中DLL的创建及调用方法
- vc中主线程等待子线程退出的方法