当我使用CreateThread API方法时,当我要传递多个LPVOID lpParameter传递的参数时,我需要做什么?
问问题
11329 次
2 回答
8
您可以创建一个包含所有相关数据的结构,并将指向该结构实例的指针(填充适当的参数)传递给CreateThread()
在您的线程创建函数中,您需要将LPVOID
back 转换为指向您的结构的指针才能使用它。
于 2012-05-15T11:52:44.973 回答
6
将这些参数放入一个结构中,在堆上分配,并在LPVOID
参数中传递结构的地址。然后,您的线程函数可以将LPVOID
转换为指向结构的指针并读出参数。
把它放在堆上是很重要的,因为如果你把它放在调用线程的堆栈上,CreateThread
那么当你的线程过程试图访问它时它可能是无效的。
于 2012-05-15T11:52:53.980 回答