|
|
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
Написали вот такую абстрактную таску, которая поддерживает колбэк на завершение самой себя, cancel и просмотр прогресса http://www.periodicooficial.oaxaca.gob.mx/files/2011/05/EXT02-2011-05-19.pdf Background Task Class Supporting Cancellation, Completion Notification, and Progress Notification : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. вот не понимаю почему onCompletion вызывается в eventThread, а задача в другом треде. Чтобы проверить написал пример: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Так вот тут вывод: Код: java 1. 2. Тут done вызывается в том же потоке, что и задача. В чем разница с примером из книги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 19:22 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
Наверное не так вопрос задаю. В принципе не понятно, что этот код делает. Да, понятна общая концепция, что длинные задачи, чтобы не тормозил ui, следует выполнять в отдельн(-ом/-ых) потоке, но как-то по обрывкам кода не понял я его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 21:45 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
questionerНаверное не так вопрос задаю. В принципе не понятно, что этот код делает. Да, понятна общая концепция, что длинные задачи, чтобы не тормозил ui, следует выполнять в отдельн(-ом/-ых) потоке, но как-то по обрывкам кода не понял я его. тогда делают так: - делают цикл из млн. элементов чтобы тормозищ ГУИ (нет реакции на закрыть окно) - исправляют данный кейс и тестируют. Логично? Теория без практики мертва. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2017, 23:10 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
Petro123, ммм...да, очевидно верно, но вопрос в другом) непонятно исполнение и использование приведенного кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 10:31 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
questionerPetro123, ммм...да, очевидно верно, но вопрос в другом) непонятно исполнение и использование приведенного кода тогда не пиши слов концепция и UI выше в твоей фразе. До этого ты как то обходился без этого). Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 10:55 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
questioner, Это аналог SwingWorker, только тут как-то намешано всё в кучу и много boilerplate кода. onCompletion вызывается в Event Thread, потому что по завершении задачи мы хотим отобразить результаты в GUI. А GUI у нас однопоточный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 10:56 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
Blazkowiczquestioner, Это аналог SwingWorker, только тут как-то намешано всё в кучу и много boilerplate кода. onCompletion вызывается в Event Thread, потому что по завершении задачи мы хотим отобразить результаты в GUI. А GUI у нас однопоточный. Да, вот ещё есть пример использования из книги, который наверное надо показать Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. на вход прилетает final Runnable task которая запускается по нажатию на startButton. Причем важно, что она это делает НЕ в потоке SWING-а Как задача внутри listenera на cancelButton может повлиять на задачу, что выполняется в отдельном треде в данном примере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 17:58 |
|
||
|
Progress and completition indication [JCIP 9.7/9.8]
|
|||
|---|---|---|---|
|
#18+
В общем это ошибка в книге. http://jcip.net/errata.html Для меня стало сюрпризом сколько в ней ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2017, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39413315&tid=2123098]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 401ms |

| 0 / 0 |
