Hello,
I just recently tried different ways to implement the functionality you are desiring. Here is my take on this.
1. If you want to open a Couple of Vi's such that they are running and also your main vi is running in the back ground. You can dynamically call this vi and run this using Vi Server methods. That is easy and very direct. The drawback is when you build your app, You must address path issues and include these Vis separately. Another drawback is if you use remote panels and your application is web enabled, the dynamically called Vis are useless as they will not open in the browser.
2. A second method is to have two concurrent while loops. One while loop has your dialog based Vi. The while loop checks for the flag as previous reply indicated and then opens your Vi. The drawback is if you have many Vis that have to open in this fashion, you need many flags and/or parsing mechanism to decode which Vi to execute. The other drawback is this continuous polling for the flag.
3. The third Method is to Use Notifier. My event Structure when decides to open the Dialog based Vi, sends a text Notifier. The other while Loop has a Wait for Notifier and just sits there. When Notifier is received due to event activity, The Notifier retrieves the notifier and based on this notifier executes the Vi. The Vi can be made modal, or floating, or neither. Since the event structure only has to send notifier, It keeps running and My Dialog Vi runs on top of it.
I used the third method, as I can open many Vi's this way and I don't have to Poll or Parse I just send a text notifier and execute case structure with the retrieved notifier.
Just my thoughts.
Good Luck!
Mache