Daemon |
Отправлено: 27.04.2004, 08:39 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 13
|
Чем можно останосить поток на определенное время так, чтобы не останавливалось выполнение остальных потоков? |
|
olegenty |
Отправлено: 27.04.2004, 09:18 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
если твой поток порождён от TThread, то у него есть метод
, который и приостановит выполнение потока вплоть до вызова метода
|
|
Daemon |
Отправлено: 27.04.2004, 09:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 13
|
Не, я потоки делаю с помощью _beginthread () |
|
olegenty |
Отправлено: 27.04.2004, 10:03 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
тогда ничем не помогу, работал только с потомками TThread, чего и тебе жалаю. это удобно. легко контролировать: разработчики уже всё сделали за тебя.
|
|
Георгий |
Отправлено: 27.04.2004, 23:18 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
а связка CreateThread && SuspendThread не подходит? |
|
Guest |
Отправлено: 28.04.2004, 08:42 |
|
Не зарегистрирован
|
Если это поток то вроде его можно остановить Sleep(1000) — 1 сек.
если ето не поможет то по событию.
создаееш елемент TEvent у него еть функция WaitFor(1000) — тоже параметр в милисекундах, она может также прерваться самым событием! Очень удобная штука! в сочетании с TThread интересные вещи получаются |
|
Dead Ghost |
Отправлено: 29.04.2004, 18:17 |
|
Не зарегистрирован
|
В деяких випадках найкраще робити цикл
[CODE]do
{
//щось або нічого
//можна вказати умову для переходу, виконання функції ...
}
while(i<2);//або щось подібне
[CODE]
Метод Suspend() і йому подібні "заморожують потік" і тоді неможливо в ньому виконати якісь інші дії ззовні. При його наступному старті Resume()-ом він почне виконуватись з того місця де його зупинили.
Подібний цикл може спасти у випадках коли треба перейти при якісь умові на мітку (і т.д.), а при невиконанні умови все пройде як і при звичайному Resum()-і. |
|