Generally in LabVIEW, data "flows" on wires. Data on all inputs to a program block must be available before the block can execute. Data on a wire is not available until the source function block has completed execution. A function block is any structure, native function, or subVI. This means that your vision loop would not execute until the receive data loop completed. (Meaning that this is serial, and not parallel) The value that the vision loop would use, would be the very last value that was received before the receive loop exited. One solution is to use a local variable. (I prefer something called "functional globals"/"LV2 style globals", but they are a bit more advanced. There many articles about them.)
I have added a local variable below. I wouldn't recommend hiding the control that it uses. (Poor style.) If you do, we can look at a different solution.
Dashboard Main_basicxman.vi