Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2014, 20:31   #11
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Цитата:
Сообщение от bilibian Посмотреть сообщение
STRELOK-2007А если код больше одной строки?
Если логически подумать, то и писать нужно более одной строки. В чём проблема?
XE5 вне форума Ответить с цитированием
Старый 03.03.2014, 22:38   #12
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от STRELOK-2007 Посмотреть сообщение
Синхронизация эта такая вещь, в которую не стоит запихивать весь код Windows. Одной строки почти всегда достаточно.

У меня код который необходимо синхронизировать гораздо больше одной строки. Он выполняет функцию извлечения данных с формы в поток.
bilibian вне форума Ответить с цитированием
Старый 03.03.2014, 22:40   #13
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от XE5 Посмотреть сообщение
Если логически подумать, то и писать нужно более одной строки. В чём проблема?
Ну да. Либо растянуть весь свой километровый код в одну строку, либо создать отдельный метод и засунуть все туда.
bilibian вне форума Ответить с цитированием
Старый 04.03.2014, 00:14   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а кто вообще сказал что несколько строк нельзя?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.03.2014, 08:34   #15
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

Цитата:
Сообщение от bilibian Посмотреть сообщение
У меня код который необходимо синхронизировать гораздо больше одной строки. Он выполняет функцию извлечения данных с формы в поток.
зачем тебе синхронизация при чтении с формы? ты же туда ничего не пишешь. или я чего то не понимаю?
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 04.03.2014, 10:57   #16
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Восклицание

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а кто вообще сказал что несколько строк нельзя?
Разумеется можно и несколько строк =)
Только надо думать головой, например вот о чем: когда вызывается метод Synchronize, то АБСОЛЮТНО все потоки приостанавливаются, в том числе и ГЛАВНЫЙ поток, и все эти ребята дружно ждут, пока вызываются строчки кода. Все, даже те, кому сейчас надо работать, а не синхронизироваться.

Именно по этой причине, я сказал, что код, должен быть максимально быстрым. А т.к. менее одной строчки написать нельзя, я взял за минимум одну строчку)

Вообще, лучше взглянуть в сторону Send[Post]Message, работает в итоге практически так-же как и Synchonize, за несколькими но
1) Сообщения обрабатывает окно Handle которого указано в параметре, в основном потоке. Т.е. дополнительных синхронизаций не надо.
2) Есть возможность передать 2 параметра, и вернуть результат
3.1) SendMessager - Ожидает только один поток
3.2) PostMessage - Вообще никто ничего не ждет.

Так-же активно использовать критические секции - в случае если синхронизация нужна в пределах одного процесса, и мьютексы - объекты ядра винды - если нужна межпроцессная синхронизация.

P.S.
В DLL TThread.Synchonize вообще, в принципе не работает, это тоже надо учитывать. А отправка сообщения, критические секции, всякие объекты ядра - семафоры, мьютексы - прекрасно работают.
STRELOK-2007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Критические секции или события? 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