Actually I would say that you have the code inside out. What you want to do is have the while loop with the event structure inside it. Put your acquisition code in the timeout event and get the timeout value from a shift-register that is initialized to -1. Now create additional event cases to handle the other buttons and controls on the application's front panel. One of those buttons might be one that sets the timeout for the timeout event based on the acquisition state. If acquisition is being turned on set the timeout value in the SR to something very short - like 1ms. If acquisition is being turned off set the timeout to -1 (no timeout).
With this structure the acquisition will happen the same as it does now, but if a button is pressed or a control is changed, it will be serviced immediately.
Mike...