BeginThreadEx
函数可以传递参数给线程函数。BeginThreadEx
函数的原型如下:
DWORD WINAPI ThreadFunction(LPVOID lpParam); HANDLE WINAPI BeginThreadEx( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId );
在这个函数中,lpParameter
参数是一个指向要传递给线程函数的参数的指针。当线程函数被创建时,这个参数将被传递给线程函数。
下面是一个简单的示例,演示了如何使用BeginThreadEx
函数传递参数给线程函数:
#include#include DWORD WINAPI ThreadFunction(LPVOID lpParam) { printf("Thread function called with parameter: %s\n", (char*)lpParam); return 0; } int main() { char* message = "Hello from the main thread!"; HANDLE hThread = BeginThreadEx(NULL, 0, ThreadFunction, message, 0, NULL); if (hThread == NULL) { printf("Failed to create thread.\n"); return 1; } WaitForSingleObject(hThread, INFINITE); CloseHandle(hThread); return 0; }
在这个示例中,我们创建了一个名为ThreadFunction
的线程函数,它接受一个LPVOID
类型的参数。在main
函数中,我们使用BeginThreadEx
函数创建一个新线程,并将message
字符串作为参数传递给线程函数。当新线程运行时,它将打印出传递给它的参数。