|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2017, 21:34 | #11 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Разделяйте приложение на составные части по принципу шаблону MVC: формы отдельно, потоки отдельно. Тогда Форму можете сразу закрыть, а поток настроить на FreeOnTerminate он сам уничтожится по завершению задачи. По поводу нестабильного соединения делайте таймаут по короче. Всё равно тут критическая секция лишняя. Она же блокирует исполнение всего кода! Вы лишаете сами себя всех преимуществ параллельного исполнения. Тут по сути у вас не параллельное исполнение получается, а очередь задач. Причём не управляемая. А раз хотим управляемую, то следует сделать очередь команд. Возможно вам пригладятся сообщения, синхронизация потоков на сообщениях самая простая.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 07.09.2017 в 21:52. |
|
07.09.2017, 21:52 | #12 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
А вообще, вот что я придумал. Всю эту канитель можно сделать проще и красивее...
И юзеры могу закрывать формы в любой момент. Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
Последний раз редактировалось 7in; 07.09.2017 в 22:00. |
07.09.2017, 21:53 | #13 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Я так понимаю, он не может делать несколько соединений с базой параллельно... а очередь и так создастся через оиждание входа в критическую секцию... Другое дело, что очередность будет не в той последовательности, в которой создавались формы, а в случайной.
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
Последний раз редактировалось 7in; 07.09.2017 в 21:56. |
07.09.2017, 22:02 | #14 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Можно ещё добавить такую вещь.
В ThGOUSERS объявить Closed: Boolean, после создание потока установить её в False, а в TFmUsers создать ClosedPtr: PBoolean и далее... Код:
И заодно не посылать PostMessage, если Closed, т.е.: Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
07.09.2017, 22:07 | #15 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Остаётся одна активная задача. Её убиваем при помощи terminate.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
07.09.2017, 22:17 | #16 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
С точки зрения качества кода это плохо. Надо инкапсулировать такую переменную в поток и модифицировать через сообщения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
08.09.2017, 18:13 | #17 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Согласен, поток может быть уже удалён при закрытии, не подумал об этом сразу.
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
08.09.2017, 18:17 | #18 | |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Цитата:
Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
Последний раз редактировалось 7in; 08.09.2017 в 18:21. |
|
08.09.2017, 19:50 | #19 | |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Цитата:
Код:
Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потоки, синхронизация | stalker1995s | Общие вопросы Delphi | 6 | 09.01.2014 17:03 |
Потоки. Закрываются все потоки при ошибке в одном. | Son | Общие вопросы Delphi | 11 | 01.11.2013 09:32 |
Потоки, синхронизация, простой | denrubun | Общие вопросы C/C++ | 11 | 29.06.2013 13:37 |
синхронизация | s.e.r.g. | C++ Builder | 10 | 11.02.2013 22:33 |
синхронизация | perun47 | Microsoft Office Excel | 0 | 31.01.2012 22:35 |