您的位置:首页 > 编程语言 > C语言/C++

《win32多线程程序设计》学习笔记——关于C++类中的线程函数声明

2012-03-04 12:58 330 查看
当线程函数属于某个类时,如果不为静态函数,那么该线程函数会有一个this指针参数,而操作系统只知道把参数推入新堆栈,因为当操作系统启动一个新线程时,它也为该线程产生一个专用的堆栈,操作系统必须在这一新堆栈中重新产生一个对你的线程函数的调用操作,这个操作当然是由操作系统调用,那么线程函数的类型一定要符合__cdecl 或 WINAPI(也就是__stdcall)。因此为了以一个成员函数启动一个线程,要么就是用静态成员函数,要么就是用C函数(而非C++成员函数),其实这两个方法本质是一样的,都需正确的建立“调用函数是所需堆栈”。但静态成员函数能够处理类的private/protected
静态成员变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 c++ winapi c