|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.02.2015, 18:28 | #11 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Но что делать, если нужно завершить поток до того, как он выполнил работу. Например, пользователь хочет закрыть программу. Поток еще работает, а списки уже уничтожены.
|
22.02.2015, 19:22 | #12 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
|
22.02.2015, 20:04 | #13 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Эээ. Не понял.
|
22.02.2015, 20:30 | #14 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
Так, не?
Код:
|
22.02.2015, 20:44 | #15 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
22.02.2015, 20:52 | #16 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
Да, верно.
|
22.02.2015, 21:52 | #17 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
А теперь выполни в Execute обработку большого списка, который при закрытии программы уничтожается и получишь ошибку доступа. Ситуация усложняется, если потоков несколько.
Однозначно, перед тем как закрыть приложение и освободить память, нужно быть полностью уверенным, что все потоки завершены. Вот я и думают, должна же быть какая-то процедура типа WaitForTerminate . Наверное здесь нужны симофоры, но логику работы с симофорами при наличии нескольких потоков я не понял.Пробовал, но работает через раз. Вот и делаю костыль с указателем. Хотя может так и нужно делать. Я так и не понял. Но бессмысленный цикл типа Код:
Можно еще передавать потоку кусок данных физически не связанных с основными (делать ему собственную копию), но тогда много накладных расходов. Последний раз редактировалось Sibedir; 22.02.2015 в 22:00. |
22.02.2015, 23:17 | #18 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
хз, у меня с потоками проблем особо не было, может я конечно как-то не так их использую, но я всегда в потоке, особенно в циклах проверяю Terminated, и поток завершается по первому требованию юзера))
|
23.02.2015, 08:31 | #19 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
блин вам кластер дай на тышу ядер, вы и его на 100% положите
а алгоритмически подойти не пробовали? "сортирнуть" перед сравнением например...
Не стесняемся, плюсуем!
|
23.02.2015, 16:16 | #20 |
Пользователь
Регистрация: 22.02.2015
Сообщений: 24
|
Всем большое спасибо за советы. Чуть подразобрался. Сижу, изучаю критические секции
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потоки. Закрываются все потоки при ошибке в одном. | Son | Общие вопросы Delphi | 11 | 01.11.2013 09:32 |
потоки в цикле | MasterSporta | Общие вопросы C/C++ | 2 | 01.10.2011 17:07 |
Цикл в цикле... | Davlet M | Помощь студентам | 6 | 25.01.2010 01:42 |
Ошибка в цикле | Alamez | Общие вопросы Delphi | 2 | 05.04.2009 15:12 |