|
|
|
вызов progressMonitor из event thread
|
|||
|---|---|---|---|
|
#18+
проблема вот в чем. По нажатию мышки вызываю метод. Предположим такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. класс SimulatedActivity Код: plaintext 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. Проблема вот в чем: надо чтобы сначала полностью выпоолнялся SimulatedActivity, а только потом выскакивало сообщение showInfoMessage("Задание выполнено"); Происходит же следующее: 1) Если не писать в методе doShowTable join, то монитор нормально отображается, но и сообщение выскакивает до окончания работы(два потока выполняются параллельно, что правильно ) 2) Если писать в методе doShowTable join, то монитор появляется, но на нем ничего не отображается, хотя выполнение задания идет, а потом приложение виснет. Как сделать так, чтобы все корректно работало? Заранее спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 11:14 |
|
||
|
вызов progressMonitor из event thread
|
|||
|---|---|---|---|
|
#18+
метод showInfoMessage вообще убрать из метода doShowTable. После того, как ты запустил свой поток, нужно запустить таймер, в этом таймере нужно обращатся к потоку и проверять, завершил он работу или нет, если завершил, то таймер выводит сообщение "Задание выполнено". Соответсвенно в класс SimulatedActivity нужно добавить переменну , например isWorking типа булеан и методы доступа к ней из таймера, зачем эта переменная и что и когда ей присваивать думаю догадаешься... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 11:26 |
|
||
|
вызов progressMonitor из event thread
|
|||
|---|---|---|---|
|
#18+
А нельзя Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 12:37 |
|
||
|
вызов progressMonitor из event thread
|
|||
|---|---|---|---|
|
#18+
LinerА нельзя Код: plaintext Это просто пример, не всегда из run будет доступен вызывающий класс wessen,спасибо - все заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 12:44 |
|
||
|
вызов progressMonitor из event thread
|
|||
|---|---|---|---|
|
#18+
LinerА нельзя Код: plaintext это не совсем правильно, так же создавать прогрессМонитор в каком то левом потоке тоже неправильно... Правильно, создать поток (SimulatedActivity) и чтобы он занимался только вычислениями, и создать таймер, который брал бы из этого потока данные и управлял прогрессМонитором и выводм сообщения об окончании работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 12:44 |
|
||
|
вызов progressMonitor из event thread
|
|||
|---|---|---|---|
|
#18+
wessenметод showInfoMessage вообще убрать из метода doShowTable. После того, как ты запустил свой поток, нужно запустить таймер, в этом таймере нужно обращатся к потоку и проверять, завершил он работу или нет, если завершил, то таймер выводит сообщение "Задание выполнено". Соответсвенно в класс SimulatedActivity нужно добавить переменну , например isWorking типа булеан и методы доступа к ней из таймера, зачем эта переменная и что и когда ей присваивать думаю догадаешься... Как узнать, завершил ли поток работу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 17:23 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33210185&tid=2150003]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 477ms |

| 0 / 0 |
