Member 12899279 Ответов: 2

Как завершить createthread без использования system("пауза")?


это мой код, который я не хочу показывать консоли, но из-за system("pause") появляется консоль.я хочу, чтобы createThread выполнял и выполнял работу, и в конце концов, когда он завершает работу, программа выходит сама по себе, не используя system("pause") _getch или cin ниже мой код

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

else //это файл...
{
sTmpPath = sPath + "\\";
currFile = sTmpPath + FindFileData.cFileName;
TCHAR curfil[1024];
_tcscpy_s(curfil, CA2T(currFile.c_str()));
строка ext = PathFindExtension(curfil);
//const char ex = ext;
if (strcmp(ext.c_str(), ".txt") == 0)
{
//соиь <&ЛТ; currFile на << епси на << епси;
файл <&ЛТ; currFile на << епси на << епси;
}
еще {

}
}
} while (FindNextFile(hFind, &FindFileData) != 0);


FindClose(hFind);

}
возвращает 0;
}

Richard MacCutchan

Почему вы запускаете его в потоке? Она не дает ничего полезного.

Stefan_Lang

Мы понимаем, что английский язык не является родным для всех. Но я уверен, что вы могли бы сделать лучше, чем это! Если нет ничего другого, пожалуйста, начинайте и заканчивайте свои предложения правильно: начинайте с большой буквы и заканчивайте полной остановкой:".".

Если вы не готовы вкладывать столько усилий, чтобы помочь нам понять вашу проблему, мы не готовы вкладывать усилия, чтобы помочь вам.

2 Ответов

Рейтинг:
1

Stefan_Lang

Цитата:
Как завершить createthread без использования system("пауза")?
Вам не нужно заканчивать поток, который вы создали: он будет выполнять свой курс и закончится, когда он будет завершен.

Если вы хотите завершить поток до того, как он будет завершен, вы можете вызвать Функция TerminateThread (processthreadsapi.h) - приложения Win32 | Microsoft Docs[^]

Идти к Процесс и поток функции - Win32-приложений, Майкрософт документы[^] для получения дополнительной информации о потоках.

Цитата:
я не хочу показывать консоль, но из-за system("pause") появляется консоль.я хочу, чтобы createThread выполнял и выполнял свою работу, и в конце концов, когда он закончит программу, она выйдет сама по себе, не используя system("pause")

Удалить строку system("pause");

Если это не решит проблему, значит, вы задали неправильный вопрос.


Рейтинг:
1

CPallini

Во-первых (как Ричард это предполагает), что вам вообще не нужен отдельный поток в вашей программе. Удалите его и сделайте запрошенные вещи в основном потоке.
Во-вторых, вам не нужно (и не нравится) system(pause); заявление так что уберите его.