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