![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Ortega |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
Есть панель, на которой драгом рисуется нечто. По отпусканию мыши данные ставятся в очередь потоку, который их отсылает в сокет.
Так вот, на время отправки данных обработка событий блокируется. Причем если убрать отправку данных и поставить какой-нибудь цикл на несколько тысяч итераций, например, то такого не происходит. Почему такое происходит, понять не могу, может кто подскажет? --------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Обработка каких событий, GUI?
Да и код в этом случае не помешало бы показать. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Ortega |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
Собственно не обрабатываются события от мыши и перерисовка.
Насчет кода, если будет время, выдерну нужный кусок. Просто, может кто с этим уже сталкивался? --------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Поставь отправку данных в отдельный thread.
Какой-нибудь цикл на несколько тысяч итераций может выполняться очень быстро. -------------------- Никогда не говори никогда |
|||
|
||||
| Ortega |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
Я соврал немного насчет нескольких тысяч.
Но проблему уже решил. Дело, как я и подозревал, заключалось в блокировке при синхронизации. Но на стороне сервера. На сервере происходило следующее: Читающий поток считывал данные и ставил их в очередь потоку-обработчику. И вот здесь я себе организовал неплохой подводный камень, поскольку обработчик был реализован след образом:
естесственно, пока все пакеты в очереди не будут обработаны, добавить новые невозможно. Поэтому читающий поток и приостанавливался, ожидая окончания обработки предыдущего пакета. Следовательно, чтение данных из сокета откладывалось, пока не будет обработан предыдущий пакет. И это почему-то вешало клиент. Добавлено @ 11:29 А проблема была решена модификацией метода:
Это сообщение отредактировал(а) Ortega - 17.7.2006, 11:28 --------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
||||||||
|
|||||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |