It sounds like you are running your RT application from the development environment and using the front panel of the RT VI as a user interface. Generally this is not a good idea. It's fine for development and debug, but a better practice is to create a separate vi that will run on your windows host that is used for your GUI. You will communicate all of your user interface over ethernet to the RT vi. Use an event structure in your windows vi to capture a button press, then send that "command" to the RT.
Good Real Time architecture it a little different than standard labview. Good practice is to at least create two "loops". One that deals with communication from the Host, and one that does your control. I put loops in "" because these loops could really consist of multiple loops in some cases. The idea is that the loop that does your communication is set at a lower priority (and loop speed) and your control loop or loops set at higer priority. RT FIFO Shared variables are a good mechanism to do the communication between your communication loop and your control loop. Network shared variables are good mechanism to use between the Host (windows) vi and the RT vi. I also really like to use the Simple TCP Messaging Protocol. For info on that look
here. It is a very good communication tool and is very worth while to learn. This mechanism gives you a command based mechanism that you don't have to poll.
One more comment about your wait question. Typically you want your high priority control loop to run at a constant rate. This will give your RT application more stability and less timing jitter. RT is built for constant loop times. If you need to create a delay in the control, keep your loop iterating, but use a state machine to set your value, then move to a state where nothing happens until X number of loops have passed. X number of loops times your loop time is your delay.
SteveA
CLD
-------------------------------------
FPGA/RT/PDA/TP/DSC
-------------------------------------