The problem with the Timer control is that it's super-not-accurate. Especially in the code I'm writing which is basically Do Sleep Loop machine.

So when the user starts the thing for the first time then the programs saves that as StartTime.

Right now I'm just making a comparison between Now() and StartTime.

But... the user can pause the thing any time they want for as long as they want.

All I really want to save is the accumulated time that it's running. Again, I can't use a Timer set to say, 1000, for example and throw 1000 ms onto the pile of elapsed ms because the value will be very wrong if I do that.

I also don't want to go the route of using some kind of precision timer (which I think won't defeat my sleep-loops anyway).

I just need to figure out an algorithm that knows when the thing was paused, when it was restarted and adds that maybe to a value to subtract from Now() - StartTime?

I don't know. All I know is that date/time stuff give me fits anyway and this just makes it even worse.