|
|
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Из головы вылетело... Не могу вспомнить, как называется функционал, когда туда передаешь свою процедуру и она выполняется там в отдельном потоке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 20:37 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
X11, Это? http://docwiki.embarcadero.com/Libraries/XE5/en/System.Classes.TThread.CreateAnonymousThread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 20:51 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
По-моему, я о чем-то другом когда-то читал. Вроде похоже, а вроде нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 20:53 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
TTask ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 20:59 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Вопрос в том, а можно ли с помощью TTask заполнять визуальные компоненты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 22:41 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
X11 Вопрос в том, а можно ли с помощью TTask заполнять визуальные компоненты? Через synchronize. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 22:45 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
т.е. внутрь анонимной процедуры TTask нужно вставить ещё одну анонимную процедуру с TThread.Synchronize http://www.proghouse.ru/programming/36-delphi-xe7-ppl?hitcount=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:08 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
-- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:08 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Получился вот такой монстр procedure FillCxCheckListBox Код: 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. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:26 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
А для чего тут доп.поток понадобился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:37 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
DmSer, ты имеешь ввиду, для чего понадобился TThread.Synchronize? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:39 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
И он в том числе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:40 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Я же написал. Или получилось непонятно? На форме есть, например, 10 списков. Если вызывать процедуры заполнения по очереди, то каждая следующая будет вызвана только после того, как закончиться предыдущая. Но зачем же ждать? Если можно все 10 списков заполнить почти одновременно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:46 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Стало сильно быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:53 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
нет но это данных в таблицах мало но я надеюсь, что на медленных ПК и с бОльшим количеством данных будет чуть ощутиммее тут вот в чем прикол, оно ж как получается: то в заполнении списков треть секунды выиграл, то в загрузке настроек и параметров треть секунды выиграл, в итоге даже если на 1 секунду быстрее, уже приятнее. Если пользователь форму открывает не 5 секунд, а 1-2, то уже классс.. Вот эта форма когда-то открывалась 5-7 секунд, я давно об этом где-то здесь писал, ещё и с Рустамом, помню, на этот счет общались на форуме, а теперь - меньше 2 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:59 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
X11, Вызывая TThread.Synchronize для всего тормозящего кода целиком ты добьешься только того что все потоки будут выполнятся по очереди. Короче фигню ты написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:59 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Почему по очереди? Ведь заполняют разные визуальные компоненты. Плюс отрисовки нет (я так предполагаю), это выполняется в событии FormShow и на закрытой вкладке PageControl`а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 00:04 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
X11, Все что находится в Synchronize выполняется в главном потоке. По очереди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 00:08 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Т.е. физически никак не заполнить списки моментально одновременно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 00:10 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
X11 Т.е. физически никак не заполнить списки моментально одновременно? Можно сделать списки виртуальными, заполнять хранилища данных в потоках, а потом через Synchronize передавать заполненные списки в основное приложение. И да, подключение к БД в каждом потоке должно быть своё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 00:16 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
alekcvp, Да ему достаточно только запрос в БД за пределы Synchronize вынести и уже все ускориться в разы. И никакие временные списки не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 00:21 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Чтобы q.ExecQuery был вне TThread.Synchronize? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 10:38 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
X11 Чтобы q.ExecQuery был вне TThread.Synchronize? Всё, кроме передачи списка, который можно собрать в отдельный TStringList. В чекбоксе потом достаточно сделать Items.Assign. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 10:48 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
Если перенести строки TThread.Synchronize(nil, procedure() begin и поставить после q.ExecQuery, то вываливает несколько AV и ошибок, в том числе и при закрытии формы Код: 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. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 11:17 |
|
||
|
Заполнение несколькоких списков в отдельных потоках
|
|||
|---|---|---|---|
|
#18+
В общем, почитал тему 21139822 , переделал так пока хотя бы без ошибок Код: 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. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2020, 11:36 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39963748&tid=2038259]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 537ms |

| 0 / 0 |
