If you start in the mean time a second instance of the program it will inform the other process to gracefully exit and exits itself also immediately. If you start it the first time, it simple prints out a message every 10 seconds.Either another thread in the same application, or a thread in another process, must be able to signal to your Main() loop that it should terminate.If this is true, then I think you want to use a Manual Reset Event or an Event Wait Handle .
Another option would be to write a Windows Service which runs in the background.
You can also download additional resources using the "Download" menu You are on your way to new depths of discovery and understanding of God's Word.
To help you maximize your e-Sword Bible study, e Study Source has put together an exclusive offer of 40% savings!
Whoever the "requester" to stop it is, should simply kill the process) The Timer approach is probably your best bet, but since you mention Thread. Spin Wait or Spin Wait struct alternative for similar problems that can sometimes be better than short Thread. Also see this question: What's the purpose of Thread. Lots of "advanced" answers here but IMO simply using a Thread. Timers are also a solution, but the code behind a timer is also an infinity loop - I would assume - that fires your code on elapsed intervals, but they have the correct infinity-loop setup.
If you need a large sleep, you can cut it into smaller sleeps.Seems like his application is better off not having a UI. Read Line() is reached the first time..application will just wait for a key press until it commences the next iteration.