Сергей Пятыгин
В этой версии я пробовал изначально передать данные с гуи в поток через класс данных, соответственно его нужно было создать и уничтожить. при уничтожении после запуска потока, так как поток отдельно а данные уже уничтожены была ошибка. Мне посоветовали чтение данных проводить в потоке.
Как оптимально передавать класс данных в поток?
В поток надо передавать данные, а не классы. Класс это ссылка, указатель, он не содержит данных. Поток по этой ссылке будет обращаться к данным, находящимся где-то в общей памяти (в куче). И так же другие потоки могут к общей памяти обращаться и конфликтовать.
В принципе, в поток можно и класс передать, но при этом ставить признак блокировки, чтобы другие потоки этот класс не трогали.