Внешняя компонента C++, асинхронность

1. starik-2005 3052 12.01.24 16:19 Сейчас в теме
Всем доброго дня!

У меня вопросик появился. Есть ws-сервер, есть внешняя компонента нативная. Хотелось бы при наличии сообщения от сервера получить callback и вызвать внешнее событие, т.е. сделать асинхронно внутри ВК. Кто-то делал такое?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. user1880116 12.01.24 21:03 Сейчас в теме +1 $m
Многопоточные приложения на с++ писал?

Если коротко, то:
- При инициализации компоненты запоминаешь интерфейсы 1С, она их тебе отдает.
- Пишешь реализацию метода для 1С, который запускает отдельный поток, который общается с твоим ws-сервером - хоть поллингом, хоть коллбеками. После окончания вызова метода 1С идет дальше, а поток живет сам по себе.
- При обнаружении события этот поток дергает интерфейс 1С, в 1С срабатывает обработка внешнего события. Многопоточноасинхронно, как ты и хотел.
- Пишешь реализацию второго метода для 1С, который останавливает этот поток.
- Дергаешь из 1С первый и второй методы как тебе надо.

Можно, конечно, запустить этот вспомогательный поток сразу при загрузке компоненты, когда тебе интерфейсы отдали. Но при методах запуска и останова контроля из прикладной логики на 1С больше.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3052 12.01.24 16:46 Сейчас в теме
Жалую стартманю за помогательство! ))))
3. user1880116 12.01.24 21:03 Сейчас в теме +1 $m
Многопоточные приложения на с++ писал?

Если коротко, то:
- При инициализации компоненты запоминаешь интерфейсы 1С, она их тебе отдает.
- Пишешь реализацию метода для 1С, который запускает отдельный поток, который общается с твоим ws-сервером - хоть поллингом, хоть коллбеками. После окончания вызова метода 1С идет дальше, а поток живет сам по себе.
- При обнаружении события этот поток дергает интерфейс 1С, в 1С срабатывает обработка внешнего события. Многопоточноасинхронно, как ты и хотел.
- Пишешь реализацию второго метода для 1С, который останавливает этот поток.
- Дергаешь из 1С первый и второй методы как тебе надо.

Можно, конечно, запустить этот вспомогательный поток сразу при загрузке компоненты, когда тебе интерфейсы отдали. Но при методах запуска и останова контроля из прикладной логики на 1С больше.
4. starik-2005 3052 12.01.24 21:28 Сейчас в теме
(3)
отдельный поток
Ага, похоже так все и работает. Спасибо. Если получится - отдам стартманю ))
Многопоточные приложения на с++ писал?
Никогда не задумывался, чем оно отличается от однопоточного в пределе. Более, чем одним потоком? )
5. user1880116 13.01.24 09:20 Сейчас в теме
(4)
чем
Синхронизацией. Потокобезопасность не на пустом месте придумали.
Вот есть у тебя, например, список - один поток его хочет сортировать, а второй хочет туда элемент добавить. Одновременно. А ты всё это пытаешся отладить...
6. starik-2005 3052 14.01.24 19:06 Сейчас в теме
(5)
Потокобезопасность
Ага. Я даже писал про мьютексы в 1С.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот