Что произойдет, если я выполню этот код, когда поток уже находится в состоянии выполнения.
Другой поток будет запускаться с функцией NMHandle
, независимой от другой.
Я хочу инициировать несколько независимых потоков NMHandle, дайте мне несколько советов для решения этой проблемы.
Этот код фактически создает независимый поток.Создайте цикл, если вы хотите создать несколько потоков, выполняющих функцию NMHandle
.Если позже вам понадобятся дескрипторы потока (например, ожидание завершения потока), их нужно где-то хранить.
Убедитесь, что NMHandle
является потокобезопасным.Если вы не знаете, что это значит, вам не следует начинать многопоточное программирование!
И еще один совет: вы передаете указатель на локальную переменную стека iNMHandleThread
в поток.Как только функция вернется, содержимое переменной может больше не иметь ожидаемого значения - вам лучше передать число по значению (CreateThread( NULL, 0, NMHandle, (void*)iNMHandleThread, 0, NULL);
).