У меня есть QThread
, который регулярно генерирует довольно большой объем данных (пара мегабайт в секунду), и ему необходимо передать его потоку родительского (GUI).
Я боюсь, что я не настолько уверен во внутренней работе QThread
, поэтому я хотел бы попросить наилучшую практику.
Очевидно, что самый прямой способ передачи данных - просто emit
массив. Однако насколько это эффективно? Знает ли Qt, где он используется, и избегает его глубокого копирования при отправке и получении?
Если нет, я могу с радостью просто выделить память в основном потоке и дать указатель на дочерний поток, где он будет записывать данные (и только emit
короткие сообщения о ходе). Это, кажется, не самое элегантное решение для меня, вот почему я спрашиваю.
Если Qt избегает копирования данных в нескольких буферах при испускании и приеме, гарантируется ли это во всех системах? У меня нет ресурсов, чтобы попробовать сравнить его в разных ОС.