|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.03.2014, 20:31 | #11 |
Заблокирован
Регистрация: 02.03.2014
Сообщений: 439
|
|
03.03.2014, 22:38 | #12 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
|
03.03.2014, 22:40 | #13 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
|
04.03.2014, 00:14 | #14 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а кто вообще сказал что несколько строк нельзя?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.03.2014, 08:34 | #15 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 977
|
зачем тебе синхронизация при чтении с формы? ты же туда ничего не пишешь. или я чего то не понимаю?
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
|
04.03.2014, 10:57 | #16 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 144
|
Разумеется можно и несколько строк =)
Только надо думать головой, например вот о чем: когда вызывается метод Synchronize, то АБСОЛЮТНО все потоки приостанавливаются, в том числе и ГЛАВНЫЙ поток, и все эти ребята дружно ждут, пока вызываются строчки кода. Все, даже те, кому сейчас надо работать, а не синхронизироваться. Именно по этой причине, я сказал, что код, должен быть максимально быстрым. А т.к. менее одной строчки написать нельзя, я взял за минимум одну строчку) Вообще, лучше взглянуть в сторону Send[Post]Message, работает в итоге практически так-же как и Synchonize, за несколькими но 1) Сообщения обрабатывает окно Handle которого указано в параметре, в основном потоке. Т.е. дополнительных синхронизаций не надо. 2) Есть возможность передать 2 параметра, и вернуть результат 3.1) SendMessager - Ожидает только один поток 3.2) PostMessage - Вообще никто ничего не ждет. Так-же активно использовать критические секции - в случае если синхронизация нужна в пределах одного процесса, и мьютексы - объекты ядра винды - если нужна межпроцессная синхронизация. P.S. В DLL TThread.Synchonize вообще, в принципе не работает, это тоже надо учитывать. А отправка сообщения, критические секции, всякие объекты ядра - семафоры, мьютексы - прекрасно работают. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Критические секции или события? | denis_gidin | Общие вопросы Delphi | 4 | 19.01.2013 11:33 |
Критические секции tcriticalsection | Dеlphi | Общие вопросы Delphi | 5 | 11.10.2011 19:45 |
Критические секции | coNsept | Общие вопросы C/C++ | 7 | 09.09.2011 00:54 |
Критические секции в Linux | Sparky | Помощь студентам | 2 | 28.05.2010 08:33 |
Критические секции | Altera | Общие вопросы Delphi | 2 | 25.12.2009 10:45 |