Qt. Работоспособность асинхронного API в отдельном потоке
Не уверен, что правильно сформировал заголовок, но постараюсь объяснить в основной части.
Разрабатывается приложение при помощи Qt и возникла необходимость заставить некоторый код работать постоянно, не прерывая основную программу. Конкретнее: в программе реализуется modbus, отправка и прием выполняются с момента запуска и до момента закрытия, при этом прочий функционал не должен из-за этого страдать. Сразу возникла идея вынести это всё в отдельный поток, но есть некоторые сомнения. В документации сказано, что библиотека modbus имеет асинхронный API. На данный момент предполагаю реализацию так: создаю отдельный класс, в конструкторе которого инициализируется объект класса QModbusRtuSerialMaster, реализуется первоначальное подключение к порту. Затем, в mainwindow.cpp происходит что-то подобное:
PlcModbus *plc = new PlcModbus;
QThread *thread_modbus = new QThread;
plc->moveToThread(thread_modbus);
connect(thread_modbus, &QThread::started, plc, &PlcModbus::startModbus);
thread_modbus->start();
В отдельном потоке начинает крутиться процесс непрерывной приемо-передачи. Так вот, в чем вопрос, может ли влиять на результат выполнения тот факт, что я засунул в поток что-то, что исполняется асинхронно? Есть ли вероятность, что это вызовет конфликт и функциональность будет нарушена?