当我使用CreateThread API方法时,当我想传递LPVOID lpParameter传递的多个参数时,我需要做什么?
您可以创建一个包含所有相关数据的结构,并将指针传递给该结构的实例(用适当的参数填充)到 CreateThread()
CreateThread()
在线程创建函数中,您需要将 LPVOID 强制转换为指向您的结构的指针才能使用它 .
LPVOID
将这些参数放入一个在堆上分配的结构中,并在 LPVOID 参数中传递结构的地址 . 然后,您的线程函数可以将 LPVOID 转换为指向struct的指针并读出参数 .
将它放在堆上是很重要的,因为如果将它放在调用 CreateThread 的线程的堆栈上,则在线程过程尝试访问它时它可能无效 .
CreateThread
2 回答
您可以创建一个包含所有相关数据的结构,并将指针传递给该结构的实例(用适当的参数填充)到
CreateThread()
在线程创建函数中,您需要将
LPVOID
强制转换为指向您的结构的指针才能使用它 .将这些参数放入一个在堆上分配的结构中,并在
LPVOID
参数中传递结构的地址 . 然后,您的线程函数可以将LPVOID
转换为指向struct的指针并读出参数 .将它放在堆上是很重要的,因为如果将它放在调用
CreateThread
的线程的堆栈上,则在线程过程尝试访问它时它可能无效 .