Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
3-79594
Layner
2004-02-02 16:12
2004.02.25
Подскажите плз, как из тригерра(MS SQL) получить некоторые знач.


1-79706
maker
2004-02-13 15:18
2004.02.25
AA&N IDCT


1-80018
smu
2004-02-13 08:43
2004.02.25
Как сделать диалог закрытия программы?


1-79957
WebErr
2004-02-13 18:09
2004.02.25
Работа с указателями в C и Pascal !!!


3-79647
Karlson
2004-01-31 14:03
2004.02.25
Тип данных для поля Цена