![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как приостановить поток?
volser © (2005-08-23 12:23:00)вот часть кода
В ПОТОКЕ:
while not Terminated do
begin
if not Paused then
begin
try
ExecTick := False;
...
finally
ExecTick := True;
end;
end;
Sleep(10);
end;
В ГЛАВНОМ ПОТОКЕ:
Thread.Paused := True;
while not Thread.ExecTick do
begin
Windows.Beep(500,50);
end;
...
Thread.Paused := False;
Иногда цикл залипает. В чем проблема?
Alexander Panov (2005-08-25 18:44:00) [21]Fay © (25.08.05 18:40) [119]
Думаю, не увижу.
Думаю, что да. Не вижу смысла в том.
Все дело только лишь в желании сделать, а не в методах.
Fay (2005-08-25 18:40:00) [22]2 Alexander Panov © (25.08.05 18:31) [114]
Пока я не видел примера без вызова метода экземпляра. Думаю, не увижу.
Игорь Шевченко (2005-08-25 18:39:00) [23]Alexander Panov © (25.08.05 18:33) [116]
Судя по длине ветки и количеству глюков, это не совсем смекалка.
Alexander Panov (2005-08-25 18:34:00) [24]Игорь Шевченко © (25.08.05 18:32) [115]
Мало ли для чего иногда возникает надобность в извратах.
Alexander Panov (2005-08-25 18:33:00) [25]Игорь Шевченко © (25.08.05 18:32) [115]
И все-таки, зачем ?
Чтобы проявить смекалку;)
Игорь Шевченко (2005-08-25 18:32:00) [26]И все-таки, зачем ?
Alexander Panov (2005-08-25 18:31:00) [27]Fay © (25.08.05 18:18) [113]
Ну и как же их вызвать, не зная о сужествовании экземпляря?
Это смотря как написать - уже снова повторяю тезис.
Fay (2005-08-25 18:18:00) [28]2 Alexander Panov © (25.08.05 18:12) [112]
Ну и как же их вызвать, не зная о сужествовании экземпляря?
Alexander Panov (2005-08-25 18:12:00) [29]Fay © (25.08.05 18:08) [111]
Suspend и Resume - это ведь методы?
Конечно. И они есть у каждого наследника TThread.
Fay (2005-08-25 18:08:00) [30]2 Alexander Panov © (25.08.05 18:02) [110]
Suspend и Resume - это ведь методы?
Alexander Panov (2005-08-25 18:02:00) [31]Alexander Panov © (25.08.05 17:56) [108]
Это про что?
При чем здесь неизвестные методы?
Fay (2005-08-25 17:59:00) [32]2 Alexander Panov © (25.08.05 17:56) [108]
Многоуважаемый не потрудится объяснить, как вызвать метод объекта, не зная о его существовании?
Alexander Panov (2005-08-25 17:56:00) [33]Fay © (25.08.05 17:17) [107]
1) один из потоков должен знать про второй
2) потоков должно быть ровно два
Совершенно необязательные условия.
Fay (2005-08-25 17:17:00) [34]2 Defunct © (25.08.05 7:01) [104]
Работоспособен не метод, а применение его в нек. ситуациях, на которые есть существенные ограничения:
1) один из потоков должен знать про второй
2) потоков должно быть ровно два
К тому же, очевидно, подобную защиту нельзя встроить в сам защищаемый объект. Короче - полные дрова.
Leonid Troyanovsky (2005-08-25 16:58:00) [35]
> volser (25.08.05 16:40) [105]
> Я попробовал сделать совй пример с помощью крит секций,
> но у меня иногда все подвисает. Возможен ли с крит. секц.
> дедлок?
Конечно.
При неправильном ея употреблении.
--
Regards, LVT.
volser (2005-08-25 16:40:00) [36]Я попробовал сделать совй пример с помощью крит секций, но у меня иногда все подвисает. Возможен ли с крит. секц. дедлок?
Defunct (2005-08-25 07:01:00) [37]> Fay
> Просто я не верю, что Вы - убеждённый борец за защиту данных с пом. Suspend...
И правильно делаете. Интересно было только показать, что и такой способ синхронизации имеет место, и вполне работоспособен.
Fay (2005-08-25 05:02:00) [38]2 Defunct © (25.08.05 3:36) [97]
[98] - [100] бред.
Я чуть не сдвинулся модель рисовать 8)
Способ действительно работает. Но только именно с парой потоков. Т.е. с тремя (два ведут себя как основной в примере) не прокатит. Производительность никакая, но мы ведь не это обсуждаем 8)).
Fay (2005-08-25 05:02:00) [39]Но я ещё подумаю 8))
Slym (2005-08-25 04:57:00) [40]Гомики так и получаются, от использования ануса не по назначению.