Не нужно бесконечных циклов в основном приложении.
Взаимодействие с потоком должно быть событийным — поток должен соощать основному потоку, что у него есть новые данные. Если данные простые, то прямо в этом сообщении и передавать их.
Почитайте про взаимодействие потоков.