Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];
ВнизTThread: как вызвать его метод из основного потока и не ждать его Найти похожие ветки
← →
Fantasist (2002-04-05 19:10) [17]
> Таймер создаю в пользовательском потоке, а в главном мне
> и не надо получать от него сообщения. Обработка таймера
> тоже в польз. потоке. А вот флажок, объявленный в public
> польз. потока высталяется действительно из основного потока.
> Просто получилось, что основной поток быстренько выставляет
> флажок и не тормозит - не ждет ничего. А таймер в польз.
> потоке, увидев флажок, выполняет уже внутри чего-то.
Вы не о том толкуете. Как вы думаете происходит событие OnTimer? Кто-то должен вызвать WndProc твоего таймера и передпть ему сообщени WM_TIMER. После того как ты устанавливаешь таймер, винда начинает посылать сообщения WM_TIMER для окна устоновившего его. Для того чтобы получить сообщение из очереди, нужно вызвать GetMessage(PeekMessage)... Ну в общем в двух словах не скажешь, почитайте SDK. Исходники VCL посмотрите. Ну не важно.
2dimka:
Честно говоря не ожидал, что это для кого-то внове. А что же по вашему происходило когда вы делаете:
while not Terminated do
begin ... end;
Это вроде очевидно. Да и в хелпе написанно всего два предложение по методу Terminate и сказанно там именно это.
Но тем не менее как это относиться к:
"что можно сделать все по-другому и вроде бы на мой взгляд проще..."
не улавливаю. Я вообще не знаю, что там за код, который обходиться без цикла, и тем не менее чего-то там долго делает, и как он прерывается по таймеру. Чего там можно сделать проще и по другому, когда вообще не понятно что делать? Или вы что, предлагаете в качестве флага проверять Terminate? Это конечно прикольно, но чем это отличается от проверки любого другово флага?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c