For something small like that, you might also consider Capesoft MaxQueue.
As for loading the queue (or file), is the data pre-staged (in which case the load would be almost instantaneous) or does it have to be gathered?
I have some webservers that need the underlying data refreshed periodically. Perhaps I overcomplicate things, but my flow is:
1. When the app starts, START a window that has a timer. Capture the thread returned by the START command into a global variable (I use GLO:DataServiceThread).
2. I declare an equate eqMyClose equate(event:user + 4) 3. In the window that has a timer, in ThisWindow.TakeWindowEvent before the parent
of eqMyClose
! any other cleanup code here
post(event:closewindow) 4. In the webserver procedure, at the beginning of thisWindow.Kill
if GLO:DataServiceThread <> 0
post(eqMyClose,,GLO:DataServiceThread)
end ! if5. Timer in window triggers refresh of data.
6. You might want to wrap the actual reloading of your data inside a critical section to restrict access while the refresh is taking place. Don't know whether that is needed with MaxQueue.