|
|
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
базовое будет без VCL - это либо обсуждение на чистов Windows API, либо вообще теоретическое в отрыве от любых операционок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 17:14 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Код: 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. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Нажимаю несколько раз Запустить/Остановить выполнение потока, иногда всё норм, иногда WinClass = WinTitle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 18:08 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Изолировал, вырезав код в отдельную программу, тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 18:50 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554Изолировал, вырезав код в отдельную программу, тоже самое. http://www.sql.ru/forum/actualfile.aspx?id=21161642] Приложенный файл (1.rar - 59Kb) Error554 Код: pascal 1. 2. 3. 4. 5. Смотрю, ты не удосужился почитать об использовании общих ресурсов разными потоками... Error554Нажимаю несколько раз Запустить/Остановить А надо не нажимать, а запускать/останавливать. Забыл Button1Click и Button2Click реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 19:58 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
YuRockА надо не нажимать, а запускать/останавливать. Забыл Button1Click и Button2Click реализовать? А, не увидел проекта прикрепленного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 20:01 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
YuRockСмотрю, ты не удосужился почитать об использовании общих ресурсов разными потоками... Разные потоки, это созданный мною поток и главный поток? И к общим ресурсам относятся процедуры, функции, переменные основного потока? Так основной поток не использует процедуры GetWindowTitle и GetWindowClass, а вот Application.Handle может где то использоваться. Я знаю, что при создании нескольких, своих, потоков и при обращении из них к VCL объектам нужно использовать специальный метод - синхронизациz. Но не думал (и не видел в самых первый статьях из поиска по теме потоки), что для обращения к общим ресурсам ещё что то нужно. Ок, пошёл искать, читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 20:20 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554Разные потоки, это созданный мною поток и главный поток?Да. Error554И к общим ресурсам относятся процедуры, функцииНет. Я уже писал, что для начала (обучения) надо понять хотя бы, поток ЧЕГО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 23:53 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554Я знаю, что при создании нескольких, своих, потоков и при обращении из них к VCL объектам нужно использовать специальный метод - синхронизациz.Хрень ты "знаешь", забудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 23:55 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554Я знаю, что при создании нескольких, своих, потоков и при обращении из них к VCL объектам нужно использовать специальный метод - синхронизациz.Так какого хрена не используешь? По крайней мере поменяй Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. А вообще уточни конкретнее что у тебя должно делаться, а то пример слишком искусственный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2018, 17:45 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
white_nigger, да там только из этого потока Memo используется, больше нигде (и в основном тоже). Поэтому не стал применять синхронизацию. Сейчас всё работает. У функции, которая получает имя класса окна, заменил SizeOf на Length. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2018, 18:20 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554больше нигде (и в основном тоже)ошибаешься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2018, 18:24 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554white_nigger, да там только из этого потока Memo используется, больше нигде (и в основном тоже). Поэтому не стал применять синхронизацию. Сейчас всё работает. У функции, которая получает имя класса окна, заменил SizeOf на Length.Именно тот код который в архиве, с предложенным мной TThread.Queue потокобезопасен. Другое дело что у тебя в реальном приложении может по-другому реализовано. В-общем, надеюсь, ты мысль уловил. Ничего сверхъестественного в синхронизации нет, если включить голову ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2018, 00:26 |
|
||
|
Работа класса грузит основной поток
|
|||
|---|---|---|---|
|
#18+
Error554да там только из этого потока Memo используется ты все таки пройдись по моим ссылкам, там правда по английски, но всё же обновлять Memo должен 1) основной поток 2) не чаще, чем 2-3 раза в секунду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 16:43 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2041269]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 382ms |

| 0 / 0 |
