Вверх ↑
Этот топик читают: Гость
Ответов: 3851
Рейтинг: 159
#1: 2006-08-24 11:34:57 ЛС | профиль | цитата
Дело в следующем:
Есть элемент TCP_Server (_Client), через него можно отправлять/получать данные. Если в момент прихода данных поток чем-то занят, то случаются тормоза. Можно было бы решить это запуском дополнительного потока ипользую Thread, но этот элемент генерит событие "NULL", в то время, как на вход его поступают принятые данные. Может быть я не прав, и задача решается коррекцией элемента TCP - чтобы выдавал принятые данные в новом потоке ?
Какие будут мысли
карма: 0
начавший
0
Ответов: 9906
Рейтинг: 351
#2: 2006-08-24 11:52:43 ЛС | профиль | цитата
Андрей. писал(а):
Какие будут мысли

Мысли возникают после постановки задачи. Потому что это: но этот элемент генерит событие "NULL", в то время, как на вход его поступают принятые данные - не постановка, ИМХО
карма: 9

0
Ответов: 3851
Рейтинг: 159
#3: 2006-08-24 14:12:07 ЛС | профиль | цитата
Уточнение:
code_194
карма: 0
начавший
0
файлы: 1code_194.txt [887B] [418]
Ответов: 8926
Рейтинг: 823
#4: 2006-08-24 16:55:01 ЛС | профиль | цитата
Андрей, если Вы хотите задержать данные на какое-то время, надо воспользоваться элементом Sleep, элемент Thread генерирует события:
Add(Sleep,8501247,168,49)
{
Delay=1000000
link(onSleep,13394150:doText,[])
}
Add(Button,9436373,98,49)
{
Left=95
Top=45
Data=Integer(123)
link(onClick,8501247:doSleepMks,[])
}
Add(Edit,13394150,252,49)
{
Left=215
Top=45
}
карма: 19

0
Ответов: 9906
Рейтинг: 351
#5: 2006-08-24 16:57:36 ЛС | профиль | цитата
Леонид, ну кто же виноват, что ты тормоз...
я же тебе все время твои посты править не буду...
карма: 9

0
Ответов: 8926
Рейтинг: 823
#6: 2006-08-24 17:01:10 ЛС | профиль | цитата
Galkov, я и сам правил (одновременно); но не понял, почему так получается, Galkov, поясните и я не буду тормозить
карма: 19

0
Ответов: 9906
Рейтинг: 351
#7: 2006-08-24 17:54:17 ЛС | профиль | цитата
Андрей., твой пример не имеет никакого отношения к твоей же фразе: "Если в момент прихода данных поток чем-то занят, то случаются тормоза"
Т.е., запуск параллельного потока после приема данных, никак не уберет тормоза, которые случились "в момент прихода данных"

Кстати, о каких тормозах идет речь тоже ведь не очень понятно.


Леонид, нажми кнопу <Цитата> и сравни то, чего было раньше, с тем, что есть сейчас...
И чур ко мне претензии не предъявлять...
карма: 9

0
Ответов: 3851
Рейтинг: 159
#8: 2006-08-24 20:00:00 ЛС | профиль | цитата
Galkov "тормоза" - это когда форма замирает. Думал, что Thread поможет, теперь и сам вижу, что не поможет. Как же сделать, чтобы данные принимались в новом потоке ?
Леонид задержку потока пока не знаю как применить - ведь неизвестно на какое время нужно задерживать.
карма: 0
начавший
0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2006-08-24 22:34:01 ЛС | профиль | цитата
Андрей., большая просьба написать минимальную программу, в которой можно бы было увидеть тормоза основной формы.
Прием и чтение данных из сокета уже осуществляется в потоке. После того, как пакет был принят данные отправляются в очередь сообщений скрытого окна и затем через точку onRead поступают к пользователю на обработку.
карма: 27
0
Ответов: 3851
Рейтинг: 159
#10: 2006-08-25 10:53:46 ЛС | профиль | цитата
Dilma, вот схема code_19 , попробуй переслать файл ~10МБ - для наглядности.
карма: 0
начавший
0
файлы: 1code_19.txt [1.8KB] [383]
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)