Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизDelphi+WinApi II Найти похожие ветки
← →
Тимохов (2004-02-10 17:21) [0]В прошлом топике http://delphimaster.net/view/1-1076405195/ я получил хороший ответ с примером. Поразбирался с реализацией этого механизма в VCL. Наконец понял, почему VCL не потокобезопасная. Навернул, конечно, борланд. :)))
Изначальный мой вопрос из указанного топика модифицировались в следующий: где в сети почитать про программирование в дельфи на winapi? Особенно интересует работа с окнами из нескольких потоков.
Помню когда-то здесь всплывала ссылка на подобный сайт. Поискал поисковиком - пока не нашел :((
Данный вопрос я задал отдельным топиком, т.к. опасаюсь, что прошлый топик никто не смогет досмотреть до конца, чтобы прочесть мой вопрос :))))
Заранее спасибо.
← →
Я (2004-02-10 17:27) [1]см. TThread.Synchronize();
← →
Тимохов (2004-02-10 17:29) [2]
> Я (10.02.04 17:27) [1]
Спасибо. Чрезвачайно познавательно. :)))))
← →
Владислав (2004-02-10 17:35) [3]Ну дык Игорь Шевченко еще в прошлом топике дал хороший совет про книгу. Про многопоточность у Рихтера всего предостаточно. Надо глубже?... Platform SDK.
← →
Тимохов (2004-02-10 17:39) [4]
> Владислав © (10.02.04 17:35) [3]
Про книгу помню - пока не успел купить :))) Завтра съезжу.
Тут был один человек, [lamer]Barmaglot, кажется, вот он большой фан winapi в дельфи. Жду, может заглянет и подкинет что нить.
← →
Игорь Шевченко (2004-02-10 17:40) [5]
> где в сети почитать про программирование в дельфи на winapi
http://www.delphimaster.ru/cgi-bin/forum.pl?n=5
В большинстве книг примеры программирования приводятся на С. Если труда перевести не представляет, то Петцольд, Рихтер,
Р. Саймон : "Windows 2000 API, энциклопедия программиста".
← →
Игорь Шевченко (2004-02-10 17:40) [6]
> программирование в дельфи на winapi
Но это, IMHO, извращение.
← →
Владислав (2004-02-10 17:48) [7]> Игорь Шевченко © (10.02.04 17:40) [6]
Ну уж не всегда же :)
← →
han_malign (2004-02-10 17:49) [8]> Наконец понял, почему VCL не потокобезопасная.
- как раз не понял - совершенно не по этому.
А "не потокобезопасная" VCL - потому, что, во многих местах, вместо SendMessge, PostMessage, используется Perform(сиречь прямой вызов WndProc, как раз, помимо очереди сообщений)...
← →
Тимохов (2004-02-10 17:57) [9]
> han_malign © (10.02.04 17:49) [8]
Там много дырок - это я уже понять успел.
И не только в том, что вы сказали.
Один CreationControl в controls.pas чего стоит.
← →
Владислав (2004-02-10 18:14) [10]> Тимохов © (10.02.04 17:57) [9]
Это не дырки. Обеспечивать синхронизацию на каждый чих в однопоточном приложении накладно. А средство написания многопоточных приложений в VCL присутствует. По крайней мере, всегда есть синхронизирующие объекты ядра даже если чего то нет в VCL. А уж если это дырами называть, то нужно таки дыры в написании потокобезопасных приложений залатать ;)
← →
Тимохов (2004-02-10 18:59) [11]
> Владислав © (10.02.04 18:14) [10]
Понял одну интересную вешь, почему часто ламеры выходят из себя на данном форуме - все кто попытней гнут пальцы (иногода просто так). :)))))
Да, подумал тут, что и мне надо пересмотреть свой стиль ответов.
Будем равняться на Юрия Зотова!
← →
Anatoly Podgoretsky (2004-02-10 19:21) [12]han_malign © (10.02.04 17:49) [8]
А "не потокобезопасная" VCL - потому, что, во многих местах, вместо SendMessge, PostMessage, используется Perform(сиречь прямой вызов WndProc, как раз, помимо очереди сообщений)...
Так SendMessge тоже напрямую, минуя очередь сообщение и вроде как Perform это и есть практически аналог.
← →
Владислав (2004-02-10 19:27) [13]> Тимохов © (10.02.04 18:59) [11]
Не знаю как у Вас, но у меня ни сил, ни терпения не хватит. И это даже с теми вопросами, в которых я, скажем так, неплохо разбираюсь. Ну правда в иных случаях я вообще стараюсь молчать.
← →
Владислав (2004-02-10 19:35) [14]> Anatoly Podgoretsky © (10.02.04 19:21) [12]
Ну в общем то да, но если поток, отсылающий сообщение не есть тот же, который его принимает?.. В случае SendMessage, отсылающий "блокируется" системой. На счет Perform ничего не скажу. Туда не углублялся.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.03 c