|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.04.2015, 14:32 | #1 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
Приостановка потока с последующем возобновлением работы
Добрый день, прошу подскажите как правильнее реализовать.
Суть в том что есть два потока один на чтение данных пришедших по сети, второй на отправку. Не хочу гонять постояно поток на отправку если нет данных для отправки. Хочу приостанавливать работу потока до тех пор пока не поступят какието аднные на отправку. Почитал в инете кто-то говорит что можно использовать Suspend потом Resume. Кто-то наоборот отговаривает от этого! С потоками мало знаком! Мб проще будет делать Terminate и потом оп необходимости создавать новый поток? Что скажите? |
21.04.2015, 14:34 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я бы предпочел не выключать поток. В потоке просто бы проверял на доступность данных для отправки, и если доступны в полной (читай: допустимой для твоей задачи) мере - отправлял бы. Иначе sleep() и на следующую итерации цикла проверки, пока not Terminated.
I'm learning to live...
|
21.04.2015, 14:52 | #3 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
Ну то что он будет гонять цикл на not Terminated мне не нравиться, понятно что проверка идёт есть даные на отправку или нет! Хочу чтобы если данных нет он просто засыпал
Код:
|
21.04.2015, 16:40 | #4 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
Suspend, Resume - использую их в делфи они кросплатформены
|
21.04.2015, 16:42 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Suspend извне плохо по причине непредсказуемости. Поток залочил чего-либо и остановлен. Чего будет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.04.2015, 16:51 | #6 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
У меня поток ни чего не лочит
|
21.04.2015, 16:58 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
B Synchronize нет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.04.2015, 17:23 | #8 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
ну я буду использвоать Queue для синхронизации в случае появления ошибки
|
21.04.2015, 17:27 | #9 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
Ну ващет компилятор ругается)
Код:
|
21.04.2015, 18:34 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Это предупреждение а не ругань. По-моему Suspend заменен ввиду морального устаревания в новых Делфи, но вот на что не помню.
Кажется на sleep()
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отображение работы потока. | S_Yevgeniy | Помощь студентам | 8 | 25.03.2011 12:56 |
Стабилизация работы потока(TThead) | ArtGrek | Общие вопросы Delphi | 18 | 19.03.2011 21:56 |
Приостановка потока | bulldog5293 | Работа с сетью в Delphi | 19 | 19.11.2010 18:37 |
Приостановка\продолжение потока | bulldog5293 | Общие вопросы Delphi | 6 | 20.09.2010 21:47 |
Приостановка цыкла for to do и дальнейшее продолжение работы | s1d0r | Общие вопросы Delphi | 4 | 27.05.2009 16:58 |