Hi Fahad,
This is a common scenario - I don't know if there's a "best" solution!
One approach is to have another (external) loop executing on your diagram - waiting for an occurance or notifier. Put the dialog logic in THAT loop, and simply invoke the notifier when the range-error occurs. Have the "dialog-loop" set a Local-boolean, and check the local in your main loop.
Simpler might be to use VI-server to Open a VI (set the VI to run-when-opened) and put a simple two-button dialog there. This "dialog-VI" will run independently. When the user answers the dialog, set a global-boolean accordingly and check the global in your main loop.
I know this is over-kiil, but a seperate thread might not be necessary with a VI which would run in two modes. In mode1 it checks a boolean input and, if True (indicating out-of-range) opens its own Front-Panel - presenting a stop-button - then terminates! In mode2 it simply reports the state of its stop-button. So the VI would be passed range results in mode1, and polled, in mode2 to see if stop is pressed.
sorry for all the choices - it's late.
When they give imbeciles handicap-parking, I won't have so far to walk!