Главная страница
    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.035 c
1-79805
16xmax
2004-02-12 17:18
2004.02.25
компоненты


6-80074
__boolean
2003-12-17 10:44
2004.02.25
NetBios


1-79693
jen
2004-02-14 04:20
2004.02.25
Можно ли в ячейке StringGrid изменить цвет части текста


1-79963
nucl
2004-02-13 17:28
2004.02.25
изменение строки подключения


4-80379
deema
2003-12-14 19:20
2004.02.25
Как определить ширину текста в пункте меню?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский