Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-80377
Amadeus
2003-12-19 00:08
2004.02.25
Ставлю глобальный хук на клавиатуру, но клавиши не ловятся.


14-80263
int64
2004-02-04 10:42
2004.02.25
Журналы


1-79857
Builder
2004-02-09 23:13
2004.02.25
Формы в dlls


4-80369
BiN
2003-12-17 11:38
2004.02.25
NetGetJoinInformation - портирование функции


1-79904
ded
2004-02-09 20:54
2004.02.25
Mini проги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский