|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Есть ActiveX EXE написанный на C++, который допустим выполняет кодирование видеофайлов. Или любую другую длительную задачу, не суть важно. И есть клиент написанный на VB, который взаимодействует с сервером через COM. Отправляет ему файл, и получает в итоге COM событие, что файл перекодирован. Ну и в процессе кодирования, сервер переодически вызывает евенты в VB клиенте, передавая туда данные о ходе процесса кодирования. Как сделать так, чтобы VB-клиент не замораживался, пока идет работа в ActiveX EXE? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 10:01 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Процесс отправки файла COM-серверу процесс асинхронный или нет (что вряд ли)? А если асинхронный - то о каком "замораживании" речь? клиенту просто нечего делать - вот он ничего и не делает... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 13:10 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Синхронный процесс конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 13:30 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Хочу уточнить один момент: "зависание" клиента происходит только в моменты приема/передачи данных, или же на протяжении всего времени обработки информации COM-сервером? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 16:24 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
hclubmk, Всего времени, клиент и сервер это однопоточные приложения работающие в синхронном обмене. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 16:39 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
если работа идёт в синхронном режиме, то видимо никак ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 16:45 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Можно попробовать изменитьApp.OLERequestPendingTimeout ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 17:09 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
hclubmkМожно попробовать изменитьApp.OLERequestPendingTimeout Это что за параметр? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 17:29 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
OLERequestPendingTimeout Если Com-сервер не совсем тугой, и подразумевает хоть какую-то передачу управления (а судя по поднимаемым событиям - подразумевает), увеличив это значение, можно избежать появление сообщения "An action cannot be completed..." у тебя если не ошибаюсь - примерно такая картина? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 17:50 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
hclubmk, Нет это не вариант. Сервер слишком на долго блокирует поток. Тут действительно или асинхронные вызовы нужны со стороны сервера. Или какая-то многопоточность со стороны VB-клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 19:34 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Не пробовал, но вроде как по теме https://msdn.microsoft.com/en-us/library/aa719109(v=vs.71).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 07:59 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
hclubmkНе пробовал, но вроде как по теме https://msdn.microsoft.com/en-us/library/aa719109(v=vs.71).aspx Не работает. https://social.msdn.microsoft.com/Forums/SqlServer/en-US/d8c83042-3bef-402a-a307-4108cf12ced7/msdn-example-for-using-net-backgroundworker-from-vb6-fails-with-accessviolationexception?forum=vbinterop ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 09:38 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Думаю, из штатного - писать отдельное приложение, которое и будет работать с этим COM, и не имеет значения, сколько оно будет "висеть в фоне", а в основное приложение данные событий передавать любым из IPC методов. При завершении основного приложения (в зависимости от желания) завершать доп. процесс в случае, если COM не завершил свою работу естественным путем. Если есть желание повозиться с потоками - у А.Кривоуса (theTrick) были в этой теме работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 11:28 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
hclubmkДумаю, из штатного - писать отдельное приложение, которое и будет работать с этим COM, и не имеет значения, сколько оно будет "висеть в фоне", а в основное приложение данные событий передавать любым из IPC методов. Какие-то адские костыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 13:12 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
EoltСинхронный процесс конечноТогда только отдельный поток для общения с СОМ, других решений не вижу. Гугли по фразе "многопоточное приложение visual basic -net" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 14:02 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
AkinaСинхронный процесс конечноТогда только отдельный поток для общения с СОМ, других решений не вижу. Гугли по фразе "многопоточное приложение visual basic -net"[/quot] Это и на VB6 будет работать. Вопрос только как обрабатывать события от COM объекта в отдельном потоке? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 14:36 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Какие-то адские костыли. такой com - уже выстрел в ногу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 15:18 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
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++ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 16:12 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
EoltЭто и на VB6 будет работать. То есть язык запросов Гугла Вы не знаете... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 18:50 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
AkinaEoltЭто и на VB6 будет работать. То есть язык запросов Гугла Вы не знаете... почему это? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 19:29 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Eoltпочему это?Поясните подробно, пожалуйста, смысл своей фразы. Особенно - присутствующего в ней союза "и". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 20:14 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
AkinaEoltпочему это?Поясните подробно, пожалуйста, смысл своей фразы. Особенно - присутствующего в ней союза "и". Многопоточность на VB6 не проблема. По-крайней мере не такая, чтобы использовать .net ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 21:15 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Поясню, Akina намекает, что предложил искать МИНУС NET, а ты этого не заметил. А то вы будете до нового года спорить... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 21:36 |
|
Взаимодействие VB с фоновым out-process сервером
|
|||
---|---|---|---|
#18+
Shocker.Proа ты этого не заметил. Хуже. Он не искал. Иначе не мог бы не обратить внимание на отсутствие тем про Vb.Net. Вот как думаешь, есть смысл отвечать тому, кто всё равно не слушает твоих ответов? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 22:31 |
|
|
start [/forum/topic.php?fid=60&fpage=18&tid=2155361]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 132ms |
0 / 0 |