2010-11-19 4 views
5

У моего приложения есть поток, который создается с использованием CreateThread. В чем разница между вызовом ExitThread из указанного потока и разрешением выхода потока нормально (т. Е. До конца функции потока)? Я использую C++ и Visual Studio 2008. Спасибо.ExitThread по сравнению с разрешающей функцией Thread Exit обычно - C++

ответ

9

На самом деле, что-то очень важное:

код ... в C++, поток вышел до того, как деструкторы могут быть вызваны или любой другой автоматической очистки может быть выполнена. Поэтому в коде C++, вы должны вернуться из вашей функции потока

(Edit Source)

+0

+1, прямо из API документации на MSDN: http://msdn.microsoft.com/en-us/ library/ms682659 (VS.85) .aspx –

+1

Также важно отметить, что из документов: «ExitThread является предпочтительным методом выхода из потока в C-коде». –

+0

@Justin Ethier: Вы уверены, что ExitThread является предпочтительный метод? В документах: «Для исполняемого файла, связанного с LIBCMT.LIB, не вызывайте Win32 ExitThread API, это предотвращает возврат ресурсов во временную систему. _Endthread и _endthreadex восстанавливают выделенные ресурсы потоков, а затем вызывают ExitThread». –

Смежные вопросы