>>>>I use the same solution as Nadya: create a file with a reserved name, the executable for each user runs a timer that checks for this special file.
>>>
>>>The one problem with VFP timer is that it doesn't fire under all circumstances (e.g., if someone has a messagebox open). The free bbTimer, however, always fires regardless of what else is going on, and that's what I use to time "idle" people out of the system or to send shutdown warnings to everyone.
>>
>>But in "idle" situations I could get my implementation to work reliably with a small array of timers even in heavy activeX scenarios<g> - I know this is at least a half kludge. I was toying with the idea of interrupt like timer usage as some tasks could take a while, but opted to make calling the "CheckForPendingMessage" method a necessary ingredient in such tasks, as not all code in that project took kindly to have other code switched in between. Could you elaborate a bit more on your approach for interupting currently heavy working methods ?
>
>I've run into specific cases where a VFP timer wouldn't fire. My understanding is the bbTimer is supposed to be better, but whether it will fire while something like a long SELECT is running, I don't know - I haven't tried it.
>
>A while back I thought up one possible idea for dealing with SELECTs - Message#
1153094Hi Al,
in "my" solution I would call to the "Check"-method directly in the UDF instead of arranging for a DoEvent to allow a timer to fire - perhaps bracket against an application timestamp if the check is time-consuming. A nice benefit of decoupling trigger and executor into different program parts. On not too old machines the function call overhead for a couple of hundered K calls can be less than a sec...
regards
thomas