|
|
|
Поток не помогает справится с зависанием формы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Имеются компоненты питона для Delphi Сделал нарыл в гугле скриншот страницы по URL. Всё работает. Но на время выполнения кода, программа подвисает. Решил сделать это всё в потоке, что бы главная форма не фризилась. Но поток как выяснилось не момогает.. Код: pascal 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. 51. 52. 53. 54. 55. 56. 57. Как видно я обращаюсь к мемо на форме.. Но я так же пробовал объявить переменную StringList, в приват\паблик секции потока, и перед запуском потока я передавал в стринглист весь текст из мемо. Но всё ровно форма подвисает на время выполнения кода. Скажите пожалуйста, что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 18:55 |
|
||
|
Поток не помогает справится с зависанием формы
|
|||
|---|---|---|---|
|
#18+
Tech N9neСкажите пожалуйста, что я делаю не так? Ты всю работу выполняешь в главном потоке. Прочитай уже справку по Synchronize(). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 19:26 |
|
||
|
Поток не помогает справится с зависанием формы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Tech N9neСкажите пожалуйста, что я делаю не так? Ты всю работу выполняешь в главном потоке. Прочитай уже справку по Synchronize(). Вроде понял, Synchronize() и тормозит форму.. Пробую делать без Synchronize(). в потоке создаю StringList, завожу нужные строки в него, создаю PY := TPythonEngine.Create(nil);, и потом PY.ExecStrings(TS); Код: pascal 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. 51. 52. 53. 54. 55. 56. 57. 58. Но так не работает. Будет рабоать, только если не создавать в потоке TPythonEngine, а в потоке сослаться на компонент на форме "TPythonEngine", но опять же форма будет фризить.. Я так понял, не правильно создаю TPythonEngine...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 21:06 |
|
||
|
Поток не помогает справится с зависанием формы
|
|||
|---|---|---|---|
|
#18+
Tech N9ne Я так понял, не правильно создаю TPythonEngine...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 21:30 |
|
||
|
Поток не помогает справится с зависанием формы
|
|||
|---|---|---|---|
|
#18+
Tech N9ne, TPyDelphiThread вроде для этого там должен быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2020, 23:51 |
|
||
|
Поток не помогает справится с зависанием формы
|
|||
|---|---|---|---|
|
#18+
Tech N9ne, Вы сейчас пытаетесь починить двигатель V8 не имея представления о том, как работает ДВС в принципе. Надо разбить код на два этапа: вычисления и вывод. Первый этап можно засунуть в поток, второй - нельзя. Точнее второй должен быть в Synchronize. У вас же они объединены в один и его нельзя использовать внутри потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2020, 09:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40028597&tid=2037779]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 498ms |

| 0 / 0 |
