This is normal behavior. When you open a reader, it takes a snapshot of the index and uses that snapshot until it is closed, and any updates to the index in the meantime are invisible to that reader.
You could periodically close and reopen the reader to get the latest data, it's not necessary to stop the program. But as you describe things, you'd have to take care that you don't close the reader if one of your (I presume) threads was actually using it. Best Erick