Re: CWinThread
От: molostov  
Дата: 11.12.04 21:05
Оценка:
Здравствуйте, STING, Вы писали:

STI>Доброго времени суток всем!

STI>Создаю класс, производный от CWinThread, добавляю в него большое кол-во своих функций, которые вызываю совершенно обычным образом(class.funcname), но есть функции выполнение которых занимает большой промежуток времени. Поэтому я засовываю вызов этих функций в InitInstance() и вызываю CreateThread() своего класса. Поток успешно выполняется. Но, как мне его после этого завершить? Дело в том, что существует, потребность многократно вызывать те функции(вызов которых я помещаю в InitInstance()), но поток после их выполнения продолжает существовать.
STI>Как правильно реализовать эту задачу?

Завершить поток просто: objThread.PostThreadMessage(WM_QUIT, 0, 0);
Только вот, мне кажется, что его постоянный перезапуск будет не очень рационален. Я бы посоветовал, из InitInstance перенести необходимые функции в обработчик какого-либо (своего) сообщения, ну и когда надо выполнить эти функции посылать потоку сообщение (PostThreadMessage и не в коем случае не SendMessage, а то потеряете все преимущества паралельного потока)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.