powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обуздать
2 сообщений из 2, страница 1 из 1
Обуздать
    #33776964
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция, которая в цикле запускает поток

Код: plaintext
1.
2.
3.
4.
5.
6.
for(int i =  0 ; i< 5 ; i++)
{
...
m_pThread = AfxBeginThread(...);
//<- здесь
...
}

хочется проанализировать возвращеное значение, а не запускать несколько разрозненных потоков.
Как это лучше реализовать?

--------------------------------------------------------------
Don't worry - wear Huggies
...
Рейтинг: 0 / 0
Обуздать
    #33777922
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
UINT Thread(LPVOID pParam)
{
::PostMessage((HWND)pParam, THRD_ENDTHREAD,  2 /*<=m_result*/, NULL);
return  0 ;
}

void SomeFunc()
{
for(int i =  0 ; i< 5 ; i++)
{
m_pThread = AfxBeginThread(...);
WaitForSingleObject(m_pThread->m_hThread, INFINITE);
m_result = ??//<- здесь значение m_result = 2 через цикл
}
}

сообщение от потока THRD_ENDTHREAD, обрабатывается так

LRESULT CDlg::OnThreadDestroyed(WPARAM wParam, LPARAM /*lParam*/)
{
//wParam ------------------------------------------------------------- код возврата из потока
	m_result = (UINT) wParam;
	return  0 ; 
}
несмотря но то, что OnThreadDestroyed, вызывается раньше чем
сработает WaitForSingleObject, значение m_result присваивается через раз
Как бороться?

--------------------------------------------------------------
Don't worry - wear Huggies
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обуздать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]