Когда я использую метод CreateThread API, что мне нужно сделать, когда я хочу, чтобы передать несколько параметров, в которых передан LPVOID lpParameter?Несколько аргументов функции CreateThread
7
A
ответ
8
Вы можете создать структуру, которая содержит все необходимые данные и передать указатель на экземпляр этой структуры (заполняется с соответствующими параметрами) для CreateThread()
В функции создания нити вам нужно будет бросить LPVOID
назад к указателю на вашу структуру, чтобы использовать его.
5
Поместите эти аргументы в структуру, выделенную в куче, и передайте адрес структуры в параметре LPVOID
. Затем ваша функция потока может передать LPVOID
указателю на структуру и зачитать параметры.
Важно, чтобы вы положили его в кучу, потому что если вы поместите его в стек потока, который вызывает CreateThread
, тогда он может быть недействительным к моменту, когда ваша процедура потока попытается получить к ней доступ.