One way to accomplish this is to code your main routine with two, parallel loop structures. Your routine that is to run continuously would be enclosed inside of one loop (a while loop). The remainder of your code would be enclosed in a second loop. With this architecture, you can set timing, duration, and halt criteria independant of the other loop. You can assign the subVI to operate on a different thread than the main routine. You can also synchronize the multiple loops with the advanced synchronization functions found in the tools palette. You will want to consider using loop timing (wait functions) if you want to force (control) CPU access. Assignment of different threads will improve CPU sharing; however, you may want better control of sequencing.
I adm
it that this response may refer to many capabilities that you have not used before; however, parallel looping structures (combined with multiple thread access) is one of the few ways to perform simultaneous (or very close) operations in LabVIEW.
PS ... When you use parallel loops, you can not have ANY wires between the two structures as those wire "attachments" would force the traditional "dataflow" characteristic on your VI by forcing one loop input to wait on the output from the other loop. Using local variables (WITH CAUTION) is a non-synchronized method to pass data between the loops. You just need to be sure that you coordinate the read and write sequencing - be sure that you write to the local variable before you read from them.