powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / (vfp) Просто вопрос
9 сообщений из 9, страница 1 из 1
(vfp) Просто вопрос
    #33007269
Ilhom_uz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в форму вложить актив-икс, то в процессе рабочей exe-шки будет по крайне мере 2 потока?

Выводы сделаны из того, что у актив-икс а своя карта сообщений (WM)...
PS
Бьюсь об заклад первым ответит Игорь Королев...
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33007382
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это так. Иногда это хорошо (индикатор прогресса через ActiveX),
а иногда плохо (перехват "горячих" клавиш).
С уважением, Алексей.
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33009566
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Ilhom_uz!

> Если в форму вложить актив-икс, то в процессе рабочей exe-шки будет по крайне мере 2 потока?

Даже если НЕ использовать никаких ActiveX-ов в процессе работы проги на фоксе будет несколько потоков (в зависимости от задачи, от использованных программных конструкций, от версии фокса...).
Естетсвенно что некоторые ActiveX-ы могут запускать свои служебные потоки, но совсем не обязательно.

> Выводы сделаны из того, что у актив-икс а своя карта сообщений (WM)...

Неверные выводы. Диспетчирование сообщений между окнами не означает что каждое окно "работает" в своём потоке. Даже не разбираясь глубоко в потоковых моделях COM серверов (ActiveX-ов в частности), проведя простой эксперимент можно понять что не порождает обычно ActiveX своего отдельного потока... Накидай на форму скажем с десяток treeview или там ListView и посмотри в TaskManager сколько потоков имеет твой процесс.
Или чуть сложнее - запусти утилиту SpyXX (есть во всех версиях Visual Studio), запусти форму с тем-же деревом и проанализируй, сколько потоков имеется у твоего процесса, и какому из них принадлежит окно этого самого контрола.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33010511
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, Igor Korolyov !

Может я чего не понимаю, хотелось бы уточнить.
Во-первых, нет ли противоречия в:

>Даже если НЕ использовать никаких ActiveX-ов в процессе работы проги на фоксе будет несколько потоков
и
>Диспетчирование сообщений между окнами не означает что каждое окно "работает" в своём потоке

И еще. Вроде бы, если из фокса запустить что-то постороннее, ну к примеру, как говорит выше Aleksey-K - как будто бы есть многопоточность и для фокса. С другой стороны, не раз натыкался - люди ругаются, что в фоксе ее нет (и, наверное, тоже не зря).
С одной стороны - она есть. А сдругой - ее нет... (что-то эта фраза мне напоминает). Загадка природы :)
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33012169
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Crispy!

Ну ты и вопросы задаёшь - я не в курсе зачем фокс запускает потоки - было когда-то мнение, что интерфейс он рисует в одном потоке, а SQL и прочую обработку он делает в другом потоке. Я могу лишь констатировать факт - в TaskManager появляется от 2-х до 9-ти потоков у фоксовых прог. Интересный факт - Timeout для MessageBox реализуется именно через создание отдельного потока (поскольку системная aka WinAPI функция MessageBox лежащая в основе одноименной фоксовой НЕ имеет никаких таймаутов, и просто блокирует вызвавший её код - то её вызывают в отельном потоке, который по истечению таймаута тихо мирно уничтожают - вместе с соответствующим MessageBox-ом)...
Из других фактов - все фоксовые окна принадлежат одному потоку (видно через SpyXX)...

"Запустить постороннее" - это скорее многозадачность (потоки # процессы). А истинная многопоточность реализуется специальным COM-компонентом - он как раз и предназначен для того, чтобы создавать новые потоки, и в каждом из них запускать по экземпляру VFP COM сервера (многопоточной сборки - т.е. MTDLL). Линки на сайт этой компоненты давались неоднократно - воспользуйся поиском тут или на forum.foxclub.ru

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33012258
botir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет незнайка
просто ответ я не знаю
от незнайки!!!!!
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33013399
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, Igor Korolyov !

Спасибо за информацию. Еще маленький вопросик - что такое SpyXX? Искал даже по маске Spy*.* - ни в 7 ни в 9b не нашел (в других каталогах тоже), в чем ее суть хотя бы - это что-то вроде диспетчера задач в WinXP?
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33014713
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Crispy!

Это утилита показывающая все окна в системе (с их атрибутами - стилями, адресами оконных процедур, именами классов и т.п.), позволяющая также вести лог оконных сообщений (WM_). В ней есть и просмотр процессов (с потоками, и даже окнами созданными каждым из потоков).
А есть она в Visual Studio (и в 6-м была, и в .NET есть) как я уже сказал. В поставке фокса её нету.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
(vfp) Просто вопрос
    #33015561
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, Igor Korolyov !

Ясно. Спасибо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / (vfp) Просто вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]