I loaded "b.vi" by asynchronous way from a_asynch.vi [load] button then stop "b.vi" by pressing the [quit] button.
In this case, b.vi can loaded again in a_asynch.vi.
But if I press panel close ("X") in stopping b.vi, b.vi cannot be loaded again in a_asynch.vi.
Of course, This can be solved by stopping the while loop of b.vi (adding <This VI> - Panel Close?).
I confused a little bit because I have never added Panel Close? to my event structure usually.
Is it one of special things I have to take care in programming open VI reference?
See if something like this works for you:
Now you can even delete the "quit" control and have everybody use the [X] to kill the VI as any windows users already knows. 😄
(That's what I use. My programs typically don't have stop/quit, etc. buttons! If cleanup code is needed, use a "panel close?" event, discard it, and initialize the proper shutdown procedure.)