powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Взаимодействие VB с фоновым out-process сервером
24 сообщений из 24, страница 1 из 1
Взаимодействие VB с фоновым out-process сервером
    #39367369
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ActiveX EXE написанный на C++, который допустим выполняет кодирование видеофайлов. Или любую другую длительную задачу, не суть важно. И есть клиент написанный на VB, который взаимодействует с сервером через COM. Отправляет ему файл, и получает в итоге COM событие, что файл перекодирован. Ну и в процессе кодирования, сервер переодически вызывает евенты в VB клиенте, передавая туда данные о ходе процесса кодирования.
Как сделать так, чтобы VB-клиент не замораживался, пока идет работа в ActiveX EXE?
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39367611
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процесс отправки файла COM-серверу процесс асинхронный или нет (что вряд ли)? А если асинхронный - то о каком "замораживании" речь? клиенту просто нечего делать - вот он ничего и не делает...
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39367654
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синхронный процесс конечно
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39367936
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу уточнить один момент: "зависание" клиента происходит только в моменты приема/передачи данных, или же на протяжении всего времени обработки информации COM-сервером?
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39367950
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmk,

Всего времени, клиент и сервер это однопоточные приложения работающие в синхронном обмене.
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39367959
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если работа идёт в синхронном режиме, то видимо никак
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39367987
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать изменитьApp.OLERequestPendingTimeout
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368001
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmkМожно попробовать изменитьApp.OLERequestPendingTimeout

Это что за параметр?
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368025
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLERequestPendingTimeout
Если Com-сервер не совсем тугой, и подразумевает хоть какую-то передачу управления (а судя по поднимаемым событиям - подразумевает), увеличив это значение, можно избежать появление сообщения "An action cannot be completed..." у тебя если не ошибаюсь - примерно такая картина?
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368109
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmk,

Нет это не вариант. Сервер слишком на долго блокирует поток. Тут действительно или асинхронные вызовы нужны со стороны сервера.
Или какая-то многопоточность со стороны VB-клиента.
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368273
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пробовал, но вроде как по теме https://msdn.microsoft.com/en-us/library/aa719109(v=vs.71).aspx
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368312
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368424
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, из штатного - писать отдельное приложение, которое и будет работать с этим COM, и не имеет значения, сколько оно будет "висеть в фоне", а в основное приложение данные событий передавать любым из IPC методов. При завершении основного приложения (в зависимости от желания) завершать доп. процесс в случае, если COM не завершил свою работу естественным путем.
Если есть желание повозиться с потоками - у А.Кривоуса (theTrick) были в этой теме работы.
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368571
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hclubmkДумаю, из штатного - писать отдельное приложение, которое и будет работать с этим COM, и не имеет значения, сколько оно будет "висеть в фоне", а в основное приложение данные событий передавать любым из IPC методов.

Какие-то адские костыли.
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368642
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltСинхронный процесс конечноТогда только отдельный поток для общения с СОМ, других решений не вижу.
Гугли по фразе "многопоточное приложение visual basic -net"
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368688
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaСинхронный процесс конечноТогда только отдельный поток для общения с СОМ, других решений не вижу.
Гугли по фразе "многопоточное приложение visual basic -net"[/quot]

Это и на VB6 будет работать.
Вопрос только как обрабатывать события от COM объекта в отдельном потоке?
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368721
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие-то адские костыли. такой com - уже выстрел в ногу.
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368787
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltВопрос только как обрабатывать события от COM объекта в отдельном потоке?

Нагуглил ответ.
авторYou can still call methods on the STA object from a different STA thread as long as you do it through a proxy. A proxy is a copy of the interface that you get via marshaling/unmarshaling. When you make a call through the proxy, COM makes a thread switch and the call ends up executing in the context of the thread where the STA object was created.

How to marshal interfaces across apartments in Visual C++
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368965
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltЭто и на VB6 будет работать.
То есть язык запросов Гугла Вы не знаете...
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368978
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaEoltЭто и на VB6 будет работать.
То есть язык запросов Гугла Вы не знаете...

почему это?
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39368989
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltпочему это?Поясните подробно, пожалуйста, смысл своей фразы. Особенно - присутствующего в ней союза "и".
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39369011
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaEoltпочему это?Поясните подробно, пожалуйста, смысл своей фразы. Особенно - присутствующего в ней союза "и".

Многопоточность на VB6 не проблема. По-крайней мере не такая, чтобы использовать .net
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39369019
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню, Akina намекает, что предложил искать МИНУС NET, а ты этого не заметил.

А то вы будете до нового года спорить...
...
Рейтинг: 0 / 0
Взаимодействие VB с фоновым out-process сервером
    #39369037
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа ты этого не заметил.
Хуже. Он не искал. Иначе не мог бы не обратить внимание на отсутствие тем про Vb.Net.
Вот как думаешь, есть смысл отвечать тому, кто всё равно не слушает твоих ответов?
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Взаимодействие VB с фоновым out-process сервером
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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