powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / можно ли закрывать хэндл потока из функции потока?
9 сообщений из 9, страница 1 из 1
можно ли закрывать хэндл потока из функции потока?
    #39253917
cpp_10_6_16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

есть код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
HANDLE h;
DWORD WINAPI func(LPVOID param)
{
	for(int i=0;i<10000;i++)
		if(i%100==0)
			cout<<"i="<<i<<endl;
	::CloseHandle(h);
	return 0;
}

int main(int argc, const char* argv[])
{
	DWORD id= 0;
	h= ::CreateThread(NULL, 0, &func, NULL , 0, &id);
	cout<<"thread created"<<endl;
	getchar();
	return 0;
}


вроде бы работает, но правильно ли так делать?
заранее благодарю за ответы
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253918
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, так делать неправильно.
А так как показано - еще и бессмысленно. Объясни: чего ты хочешь добиться закрывая хендл потока? Что ты планируешь делать если запустишь второй, третий, четвертый, и так далее поток?
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253921
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpp_10_6_16правильно ли так делать?
Неправильно. Закрывай хэндл сращу в main().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253931
cpp_10_6_16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlНет, так делать неправильно.
А так как показано - еще и бессмысленно. Объясни: чего ты хочешь добиться закрывая хендл потока? Что ты планируешь делать если запустишь второй, третий, четвертый, и так далее поток?

я хочу запустить поток и не заботиться о его закрытии, аналогично :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
void runThread()
{
	boost::thread t(func);
	t.detach();
}

int main(int argc, const char* argv[])
{
	runThread();
	cout<<"thread created"<<endl;
	getchar();
	return 0;
}
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253933
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpp_10_6_16я хочу запустить поток и не заботиться о его закрытии
Читай Рихтера и сообщение выше: закрывай хэндл сразу после _beginthread().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253934
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovcpp_10_6_16я хочу запустить поток и не заботиться о его закрытии
Читай Рихтера и сообщение выше: закрывай хэндл сразу после _beginthread().
Это и без Рихтера очевидно
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253937
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЭто и без Рихтера очевидно
Без Рихтера он явно считает, что хэндл мистически связан с потоком и его закрытие приведёт
к прерыванию выполнения потока.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253939
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИзопропилЭто и без Рихтера очевидно
Без Рихтера он явно считает, что хэндл мистически связан с потоком и его закрытие приведёт
к прерыванию выполнения потока.

По этой логике поток , закпывающий свой хендл совершает в этот иомент суицид
...
Рейтинг: 0 / 0
можно ли закрывать хэндл потока из функции потока?
    #39253941
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилПо этой логике поток , закпывающий свой хендл совершает в этот иомент суицид

Поэтому он и поставил вызов CloseHandle() в самый конец, туда, где ставят ExitThread().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / можно ли закрывать хэндл потока из функции потока?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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