Here is a snippit of using VISA events. You need to set time out to something reasonable. You also need to initiliaze and close the VISA session. I use this for all my serial comunication. It works well for me.
Also in reading the help it looks like the VISA wait on event function suspends the thread. So this would not work when trying to send and receive at the same time.
Thanks
Dan