
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.10.2012, 22:31:19
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
Всем доброго времени суток. Вопрос собственно в названии поста. Погуглив ничего конкретного не нашел, в основном натыкался только на советы запускать процесс в отдельном Thread. Так как же все таки на самом деле? С уважением YK13 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2012, 22:52:35
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
Давайте начнем с вопроса зачем он вам в Java? И вообще о какой Java речь? Swing, SWT, JavaFX? Вместо Thread, в Swing уже есть SwingWorker. Очень удобная утилита. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2012, 23:07:48
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
Blazkowicz Давайте начнем с вопроса зачем он вам в Java? Ну за тем же зачем и в c# В .NET DoEvents передает управление операционной системе и переходит в состояние ожидания, которое заканчивается, как только будет опустошена очередь сообщений. Это позволяет продвигаться другим процессам. Поробуйте запустить какой нибудь длительный процесс с вызовами DoEvents и без них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2012, 23:28:05
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
YK13Ну за тем же зачем и в c# Java это не C#. OK? YK13В .NET DoEvents передает управление операционной системе и переходит в состояние ожидания, которое заканчивается, как только будет опустошена очередь сообщений. SwingUtilities.invokeLater() - поставит код в очередь сообщений, так что все текущие сообщения сначала обработаются, а затем этот код. Причем в контексте Event Dispatch Thread. YK13Это позволяет продвигаться другим процессам. JVM это один процесс. Swing гуи работает с одним потоком - Event Dispatch Thread. YK13Поробуйте запустить какой нибудь длительный процесс с вызовами DoEvents и без них. Угу. Помчался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 00:01:54
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
Blazkowicz Java это не C#. OK? ..... Угу. Помчался. Проведение аналогий помогает в изучении. Я не являюсь специалистом в java и мой вопрос собственно к людям в более или менее одинаковой степени разбирающиеся в той и другой технологии. Если же вы таковым не являетесь то либо промолчите, либо ответьте нормально. И если всетаки решили помочь не понимая того о чем человек спрашивает, так ведите нормальный диалог. Ведь на форум люди обращаются за помощью, а не за тем чтобы посмотреть как кто либо блещет своим остроумием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 01:39:14
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
YK13BlazkowiczJava это не C#. OK? ..... Угу. Помчался. Проведение аналогий помогает в изучении. Я не являюсь специалистом в java и мой вопрос собственно к людям в более или менее одинаковой степени разбирающиеся в той и другой технологии. Если же вы таковым не являетесь то либо промолчите, либо ответьте нормально. И если всетаки решили помочь не понимая того о чем человек спрашивает, так ведите нормальный диалог. Ведь на форум люди обращаются за помощью, а не за тем чтобы посмотреть как кто либо блещет своим остроумием.тебе нормально и очень пОлно ответили в контексте swing'а ты не о swing'е? уточни. что тут за тебя кто-то чето должен додумывать что ты там имел в виду? а люде вощето разные, не стоит по себе судить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 10:10:03
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
YK13И если всетаки решили помочь не понимая того о чем человек спрашивает, так ведите нормальный диалог. Если пришел сюда тупо потрепаться, то для этого есть специальные форумы. По сути не на один наводящий вопрос выше не ответил. Значит тебе это не нужно. YK13Ведь на форум люди обращаются за помощью, а не за тем чтобы посмотреть как кто либо блещет своим остроумием. Добро пожаловать в интернет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 20:55:49
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
Да видимо, вопрос не совсем понятен, раз такая неадекватная реакция. BlazkowiczПо сути не на один наводящий вопрос выше не ответил Я не ответил? Посмотри ка выше на свой комментарий к моему ответу на твой вопрос – зачем это нужно в Java. Если тебе не понятен ответ так уточни, я обязательно отвечу более подробно. Ладно, попробую пояснить, что я имею ввиду. Итак предположим ты запустил какой то длительный процесс. Например какой то цикл, каждая итерация которого что нибудь создает, вычисляет итд. (ну вобщем очень долго). Так вот в .NET если во время каждой итерации ты не будешь вызывать Application.DoEvents ты просто вообще ничего не сможешь сделать – пользовательский интерфейс вообще не будет реагировать, ты не сможешь ни на кнопку нажать, ни передвинуть окно приложения. Что конкретно делает метод DoEvents я писал выше. Еще раз говорю, что в java я не спец, но в силу ряда обстоятельств пришлось вот столкнуться. Поэтому и спрашиваю как эта проблема решается в java. Вот и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 21:02:19
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
BlazkowiczSwingUtilities.invokeLater() - поставит код в очередь сообщений, так что все текущие сообщения сначала обработаются, а затем этот код Но из этого объяснения следует то же самое о чем я писал выше - обработаются все текущие сообщения, а потом будет обрабатываться цикл который я привел в качестве примера, а после него уже все сообщения которые появились в то время когда происходила работа цикла. Или что то я понял не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 21:16:51
|
|||
|---|---|---|---|
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
YK13Но из этого объяснения следует то же самое о чем я писал выше - обработаются все текущие сообщения, а потом будет обрабатываться цикл который я привел в качестве примера, а после него уже все сообщения которые появились в то время когда происходила работа цикла. Или что то я понял не так? DoEvents исключительно виндовый прибамбас, оставший в наследство от однопоточной Windows 3. Java многпоточна, если всё делать правильно, не надо никакого DoEvents и при этом интерфейс пользователя не будет ни зависать, ни притормаживать. А если делать неправильно то просто вообще работать не будет. Посмотри здесь примеры, позапускай их, почитай исходники. В них нет ничего похожего на остановку потока приложения, что бы в это время что-то там выполнила операционная система. Интерфейс пользователя работает в отдельном потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2012, 21:20:58
|
|||
|---|---|---|---|
|
|||
Есть ли в java аналог .NETовского Application.DoEvents |
|||
|
#18+
YK13Но из этого объяснения следует то же самое о чем я писал выше - обработаются все текущие сообщения, а потом будет обрабатываться цикл который я привел в качестве примера, а после него уже все сообщения которые появились в то время когда происходила работа цикла. Или что то я понял не так? Код: java 1. 2. 3. 4. 5. 6. 7. 8. Все эти DoEvents и прочите ухищрения необходимы из-за однопоточного подхода к UI. Это, надеюсь, очевидно? Код выше показывает как раз исполнение в таком потоке, сначала 1, потом 2, потом все сообщения что накопились в очереди, потом 4. Но, как я уже говорил в соседней теме, на практике этот метод не особо нужен. SwingWorker + Timer покрывают почти все задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2130755]: |
0ms |
get settings: |
14ms |
get forum list: |
25ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 300ms |
| total: | 492ms |

| 0 / 0 |
