Здравствуйте, STING, Вы писали:
STI>Доброго времени суток всем! STI>Создаю класс, производный от CWinThread, добавляю в него большое кол-во своих функций, которые вызываю совершенно обычным образом(class.funcname), но есть функции выполнение которых занимает большой промежуток времени. Поэтому я засовываю вызов этих функций в InitInstance() и вызываю CreateThread() своего класса. Поток успешно выполняется. Но, как мне его после этого завершить? Дело в том, что существует, потребность многократно вызывать те функции(вызов которых я помещаю в InitInstance()), но поток после их выполнения продолжает существовать. STI>Как правильно реализовать эту задачу?
Завершить поток просто: objThread.PostThreadMessage(WM_QUIT, 0, 0);
Только вот, мне кажется, что его постоянный перезапуск будет не очень рационален. Я бы посоветовал, из InitInstance перенести необходимые функции в обработчик какого-либо (своего) сообщения, ну и когда надо выполнить эти функции посылать потоку сообщение (PostThreadMessage и не в коем случае не SendMessage, а то потеряете все преимущества паралельного потока)