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

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

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

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

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

Это и на VB6 будет работать.
Вопрос только как обрабатывать события от COM объекта в отдельном потоке?
...
Рейтинг: 0 / 0
16.12.2016, 15:18
    #39368721
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимодействие VB с фоновым out-process сервером
Какие-то адские костыли. такой com - уже выстрел в ногу.
...
Рейтинг: 0 / 0
16.12.2016, 16:12
    #39368787
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимодействие VB с фоновым out-process сервером
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
16.12.2016, 18:50
    #39368965
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимодействие VB с фоновым out-process сервером
EoltЭто и на VB6 будет работать.
То есть язык запросов Гугла Вы не знаете...
...
Рейтинг: 0 / 0
16.12.2016, 19:29
    #39368978
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взаимодействие VB с фоновым out-process сервером
AkinaEoltЭто и на VB6 будет работать.
То есть язык запросов Гугла Вы не знаете...

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

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

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


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