Member 12483338 Ответов: 1

Событие завершения потока.


Я создал один поток с помощью createthread (), который возвращает мне дескриптор и продолжает работать основной поток. Я хотел бы знать это событие завершения потока, чтобы я мог обновить свою другую функцию, которая обновляет мой пользовательский интерфейс.

Что я уже пробовал:

Я попытался использовать Createevent () и setevent (), но этот подход просил меня вызвать wait (). Я не хочу ждать.

[no name]

Вопрос не ясен, и вы должны добавить больше деталей. Однако "я не хочу ждать" не имеет смысла. Как еще вы будете синхронизировать потоки?
http://stackoverflow.com/questions/811641/windows-threading-wait-method

Member 12483338

WaitForSingleObject () он продолжает ждать основной поток , который мне не нужен.

1 Ответов

Рейтинг:
1

Jochen Arndt

Если вы только хотите знать, закончился ли поток Windows или нет, используйте Функция GetExitCodeThread (Windows)[^].

Если вы хотите сообщить другим потокам, что этот поток закончился, вы можете вызвать событие, которое проверяется другими потоками.

Но это не полезно с основным потоком (GUI). Чтобы проинформировать основной поток, вы можете использовать PostMessage с пользовательским сообщением. Сообщение может быть отправлено в любое окно с помощью его дескриптора (например, в Главное окно приложения).