CreateThread в основном для потоков пользовательского интерфейса, но все же предпочтительнее использовать второй метод для AfxBeginThread. Храните ссылку на дескриптор потока в заголовке, а не в потоке.
HANDLE hThread;
затем в исходном тексте запустите вашу ветку, указывающую на ваш процесс:
CWinThread *pThread;
if(!(pThread = AfxBeginThread(ThreadProc, NULL, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED))) {
delete arr;
}
::DuplicateHandle(GetCurrentProcess(), pThread->m_hThread, GetCurrentProcess(), &hThread, 0, FALSE, DUPLICATE_SAME_ACCESS);
pThread->ResumeThread();
Вы запускаете его приостановленным, чтобы вы могли скопировать дескриптор в тот, который вы сохранили в заголовке. таким образом, вы можете использовать сохраненный дескриптор для проверки кода выхода.