|
|
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустамя бы ни в коем, НИ В КОЕМ случае не использовал сообщения/события для обмена данными, только для сигнализации. Тем более в шаблоне потока. И это правильно. Шаблон-же. Нужна копия данных, с выделением памяти. Но вот Dimonka, кажется хочет сделать свою работу моими руками, подогнав за мой счет шаблон под конкретную задачу. :) DimonkaМожешь тестировать :) Напишу конкретный парсер, где процедура парсинга будет твоя. А остальное, вместе с менеджером потоков, белым/черным списком урлов и диагностическими сообщениями - мое. Недорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 19:53 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadman, Получается, вместо примера использования ты показываешь мусор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 20:11 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Dimonka, некрасиво брать на слабо. Идеального кода не существует, как и людей. Научись адаптировать код, если программист. Это лишь шаблон, который справляется с необходимым минимумом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 20:18 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамНИ В КОЕМ случае не использовал сообщения/события для обмена данными Майкрософт ниего против не имеет, однако: http://msdn.microsoft.com/en-us/library/windows/desktop/ms649011.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 23:05 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Arioch> Майкрософт ниего против не имеет, однако Ну, Майкрософту и вам, с ним согласным, виднее, конечно. Можете хоть в ногу себе стрелять, MS тоже против не будет. P.S. Если уж чешется WM_COPYDATA, то лучше напрямую MMF использовать (оно через них работает, AFAIK). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2013, 23:59 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Кстати, не заметил по ссылке ничего про "не имеет против". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 00:00 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
AriochМайкрософт ниего против не имеет У МС примеры, которые я подсматривал как раз таки имеют свойство копировать данные (LocalAlloc, LocalFree) и передавать ссылку при работе с потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 08:59 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Нечто такое: Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 09:05 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Тем не менее, никаких рекомендаций против использования WM_COPYDATA там нет, ни в общем виде ни ввиде ограничений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 10:52 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Dimonka, в общем, я учел твое замечание и допилил малость. Хотя все равно считаю, что твой пример - сие есть ошибка в проектировании: нужен менеджер потоков, который реагирует на занятость/свободность потоков. Шаблон: Код: 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. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. Тестовый пример прежний, из стартового сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 11:37 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Читал, читал, и "Не выдержала душа поэта" :) На сколько я понимаю основная мысль TWThread это посылка команды в поток что бы поток эту команду выполнил (асинхронно). Вот альтернативный вариант, так сказать как бы я это сделал: Код: 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. Наследник получается вот таким: Код: 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. Посылаем команду Код: pascal 1. Cделано для XE3 но при определённых доработках можно перенести на более ранние версии. Например в место TValue можно использовать Variant. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 12:38 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Упс, цикл не правильный поставил, нужно заменить Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. на while Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 12:43 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Марат Сафин Код: pascal 1. Сейчас Димонка придет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 12:51 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Почему интерфейс работы с потоками у всех вас такой заумный? Сделайте по-человечески: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Всё! больше нормальному человеку ничего не надо от потока. А уж пользователь унаследуется от TAbstractJob и добавит свой функционал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:20 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
DimonkaПочему интерфейс работы с потоками у всех вас такой заумный? Проще и с кучей косяков, которые многие допускают по незнанию - TThread. Куда уж проще. Но ведь кому-то не просто хочется отдать другому потоку некую работу, а и получить результат и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:25 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadmanDimonkaПочему интерфейс работы с потоками у всех вас такой заумный? Проще и с кучей косяков, которые многие допускают по незнанию - TThread. Куда уж проще. Но ведь кому-то не просто хочется отдать другому потоку некую работу, а и получить результат и т.п. Т.е. с твоим интерфейсом косяков по незнанию будет меньше? Или надо сделать всё настолько сложно, что пока разбираешься в том, что ты сделал, поймёшь как потоки работают? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:30 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
DimonkaТ.е. с твоим интерфейсом косяков по незнанию будет меньше? Пока что ты нашел один и я его поправил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:32 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Почему интерфейс работы с потоками у всех вас такой заумный?Почему интерфейс работы с потоками у всех вас такой заумный? Кому то нравится цвет жёлтый, кому то красный, с интерфейсами такая же фигня :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:34 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadmanDimonkaТ.е. с твоим интерфейсом косяков по незнанию будет меньше? Пока что ты нашел один и я его поправил. Основной косяк в том, что если пользователю надо будет добавить функционал к товему потоку, ему надо будет менять твой код. Это, я считаю, в корне неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:36 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
DimonkaИли надо сделать всё настолько сложно, что пока разбираешься в том, что ты сделал, поймёшь как потоки работают? :) Ты ведь не просто критикуешь, а понимаешь что и как? Будем рады увидеть и твой вариант реализации. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:37 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
DimonkaОсновной косяк в том, что если пользователю надо будет добавить функционал к товему потоку, ему надо будет менять твой код. Я как-то не подумал об этом. Ты это серьезно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:39 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadmanDimonkaОсновной косяк в том, что если пользователю надо будет добавить функционал к товему потоку, ему надо будет менять твой код. Я как-то не подумал об этом. Ты это серьезно? Ну дык, если ты вдруг скажешь - у меня ещё N косяков обнаружилось в коде и вот она - новая версия, то пользователь тебе скажет "спасыпо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 13:59 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
DimonkaНу дык, если ты вдруг скажешь - у меня ещё N косяков обнаружилось в коде и вот она - новая версия, то пользователь тебе скажет "спасыпо". А, ты все еще об идеальном коде... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 14:02 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadmanDimonkaНу дык, если ты вдруг скажешь - у меня ещё N косяков обнаружилось в коде и вот она - новая версия, то пользователь тебе скажет "спасыпо". А, ты все еще об идеальном коде... Я не об идеальном коде, а о практической стороне вопроса. Если алгоритм пользователя вне твоего кода, то пользователю надо заменить только твой юнит. А если внутри твоего кода, то надо будет редактировать весь код, где использовался твой "шаблон". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 14:13 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
DimonkaА если внутри твоего кода, то надо будет редактировать весь код, где использовался твой "шаблон". Пояснить, что такое шаблон? Заканчивай оффтопить, выдвигай пожелания и свои варианты. Описал-же идеальный вариант, похвастайся и реализацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2013, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=38413082&tid=2039179]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 569ms |

| 0 / 0 |
