![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Но что делать, если нужно завершить поток до того, как он выполнил работу. Например, пользователь хочет закрыть программу. Поток еще работает, а списки уже уничтожены.
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
![]() |
![]() |
![]() |
![]() |
#13 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Эээ. Не понял.
|
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
![]()
Так, не?
Код:
|
![]() |
![]() |
![]() |
#15 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#16 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
![]()
Да, верно.
|
![]() |
![]() |
![]() |
#17 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
А теперь выполни в Execute обработку большого списка, который при закрытии программы уничтожается и получишь ошибку доступа. Ситуация усложняется, если потоков несколько.
Однозначно, перед тем как закрыть приложение и освободить память, нужно быть полностью уверенным, что все потоки завершены. Вот я и думают, должна же быть какая-то процедура типа WaitForTerminate . Наверное здесь нужны симофоры, но логику работы с симофорами при наличии нескольких потоков я не понял.Пробовал, но работает через раз. Вот и делаю костыль с указателем. Хотя может так и нужно делать. Я так и не понял. Но бессмысленный цикл типа Код:
Можно еще передавать потоку кусок данных физически не связанных с основными (делать ему собственную копию), но тогда много накладных расходов. Последний раз редактировалось Sibedir; 22.02.2015 в 22:00. |
![]() |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
![]()
хз, у меня с потоками проблем особо не было, может я конечно как-то не так их использую, но я всегда в потоке, особенно в циклах проверяю Terminated, и поток завершается по первому требованию юзера))
|
![]() |
![]() |
![]() |
#19 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
блин вам кластер дай на тышу ядер, вы и его на 100% положите
![]() а алгоритмически подойти не пробовали? "сортирнуть" перед сравнением например...
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#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 |