WinAPI - 需要CreateThread()的线程函数来发送其他参数

时间:2013-12-23 23:40:25

标签: multithreading winapi

在我的情况下,我需要CreateThread()函数的线程函数processClient(LPVOID),以在创建线程时接受其他参数(即:processClient(LPVOID,someADTorARRAY))。

我目前的代码:

...function declaration
DWORD WINAPI processClient(LPVOID lpParam){
    ...do stuff with socket
}

...in main
CreateThread(
                NULL,                       // don't inherit handle
                0,                          // use default size for the executable
                processClient,
                (LPVOID)ClientSocket,       // thread data
                0,                          // run right away
                &i );

1 个答案:

答案 0 :(得分:4)

创建一个包含所有参数的结构,然后将指针传递给它。

struct ClientParams
{
    socket sock;
    someADT adt;
    ...
}

ClientParams params = new ClientParams();
CreateThread(..., (LPVOID)params, ...);