Hi,

wie wärs, wenn du einfach vor der While-Schleife noch eine Abfrage machst, ob überhaupt Daten anliegen? Das geht natürlich nur, wenn du einen Buffer hast.
Oder du machst das via Timer, der nach x ms einen Interrupt auslöst, ein Flag setzt und du überprüfst dann in der While-Schleife, ob das Flag gesetzt ist und verlässt sie dann.

Gruß
Chris