![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |||||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Цитата:
Если много-много разных работают с ОДНОЙ памятью(переменными), то можно смотреть в сторону критических секций. Правда чтобы там работать очень рекомендую почитать теорию(хотя Wiki). Вот только вопрос если ВСЮ работу с глобальными переменными потока вынести в критическую секцию(читай на время работы какого-либо потока с общими данными ОСТАНОВКА всех прочих попыток работать с ними же) то ЧТО из кода потока останется ВНЕ этой секции если Все данные являются глобальными. Не VCL должен читать (хотя и может) а потоки с использованием синхрометодов должны сбрасывать СВОИ результаты в ОБЩУЮ кучу данных. А уж VCL в доступное ему время (когда потоки заняты своими делами) может заняться их обработкой. ТАК же потоки с использованием синхрометодов(НАПИСАНЫХ тобой) могут обращаться за дополнительными данными. очень грубая демка на тему синхропроцедур и не только вместо "прямой" работы формой надо было бы использовать события потока. Цитата:
Тем медленнее будет выполнена исходная задача. А если все эти проверки синхронизировать(как положено) то вообще останется в работе ОДИН проток. А правила синхронизации придумали не просто так. Да и все ваши флаги и проверки не что иное как попытки провести синхронизацию потоков не делая ее. Но которые пока не вполне выполняют свою задачу синхронизации. Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 23.09.2015 в 09:41. |
|||||
![]() |
![]() |
![]() |
#12 | |
Пользователь
Регистрация: 05.09.2015
Сообщений: 28
|
![]() Цитата:
Код:
Код:
|
|
![]() |
![]() |
![]() |
#13 | |||||||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Цитата:
Достаточно будет указать что окно(или его часть) требует перерисовки. Цитата:
1. код любой процедуры целиком помещаться на экране. (не более 20-30 строк) 2. как можно МЕНЬШЕ ГЛОБАЛЬНЫХ переменных. 3. для каждого класса ОТДЕЛЬНЫЙ модуль (unit) 4. если основная задача какой-либо процедуры работа с показом формы, то это должен быть метод ЭТОЙ формы. (и в ней не должно быть привязки к глобальному объекту данной формы. Код:
Цитата:
Цитата:
Цитата:
Цитата:
Да, я прекрасно понимаю, что вам эти траты пока что кажутся НЕОБХОДИМЫМИ. Именно в силу вашего принципа организации работ. каждый следит за кем-то и управляет им. А чтобы следить надо его проверять (отсюда if ) и если работы пока нет, то потом она появится (отсюда while sleep)
программа — запись алгоритма на языке понятном транслятору
|
|||||||
![]() |
![]() |
![]() |
#14 | |
Пользователь
Регистрация: 05.09.2015
Сообщений: 28
|
![]() Цитата:
Код:
Код:
А что значит "и в ней не должно быть привязки к глобальному объекту данной формы"? |
|
![]() |
![]() |
![]() |
#15 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
W1050 WideChar reduced to byte char in set expressions. | Человек_Борща | Общие вопросы Delphi | 8 | 19.06.2012 20:57 |
Ошибки в программе - функция для работы с множествами | X-REY | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 26.10.2011 20:48 |
Оптимизация методов работы с БД | Lindemann66 | C/C++ Базы данных | 1 | 11.10.2011 13:06 |
W1050 WideChar reduced to byte char in set expressions. Что делать? | SkAndrew | Общие вопросы Delphi | 3 | 01.11.2008 07:51 |
Модуль для работы с множествами [Pascal] | iFool | Помощь студентам | 2 | 20.10.2008 22:04 |