|
|
|
JavaFX2: потокобезопасность
|
|||
|---|---|---|---|
|
#18+
Надо ли как-то специально работать с UI контролами из потока таски, если я только считываю данные и ничего не меняю? UI при этом гарантированно заблокирован. Т.е. мышкой-клавой никто тыкать не будет. Что-то толком нагуглить не получилось. В swing я чтение данных из полей ввода делаю в EDT потоке. Вот думаю в JavaFX надо также? Вот так нормально? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Или надо делать вот так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Метод generate() вызывается только из UI потока (клик по кнопке). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 08:26 |
|
||
|
JavaFX2: потокобезопасность
|
|||
|---|---|---|---|
|
#18+
Чтение оно, как бы, безопасное. Но вроде как и рискованое. Мало ли там чего, может вдруг по первому чтению документ рендерится в строку? Поэтому лучше любые обращения выполнять в EDT, даже если они являются чтением. Но, помимо этого, 2й вариант имеет слабую связь между логикой и View-слоем. Task при этом из View можно легко унести в бизнес-логику. Даже не сам Task, а его метод. В то время как первый вариант это сильная зависимость между логикой и UI. При усложнении логики либо UI, их рефакторинг будет более болезненым, так как более сильная связь требует синхронизации изменений в обоих слоях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 11:20 |
|
||
|
JavaFX2: потокобезопасность
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЧтение оно, как бы, безопасное. Но вроде как и рискованное. Хорошо, так и сделаю. Что понравилось в javaFx - так это, то что javaFx кидает эксепшен при попытке записи в другом (не EDT) потоке. В swing приходилось специально исхитрятся через задание специального FailOnThreadViolationRepaintManager-а. А тут тебе из коробки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 15:01 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=144&tid=2125973]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 409ms |

| 0 / 0 |
