Hello,
that's right, the easiest way would be to check the VISA property Bytes at Serial Port periodically (leaving time for other things to execute), and then call VISA Read when you are sure there's info to be read.
Another approach, probably more sophisticated, is to use VISA Events. In this case, you would use the VI_EVENT_ASRL_CHAR event type to trigger the code you wish to run when data arrives at your port (normally, reading it!).
I think you'll be able to find an example of this if you search a little bit.
Regards,
Jorge M.