I have a suspiscion that I am using up some kind of Timer resource. A timer that should fire in 120 seconds is not firing. I checked to make sure that the set goes through, and SetTimer returns the appropriate value. This doesn't always happen, most of the time the timer fires, and I get the OnTimer event. Once in a while though, the timer is set and does not fire, after 1 occurence of this it is much more likely to occur again.
Is there a list of available CE resources somewhere, for 3.0 and .NET?
Ooof. Sounds like a tricky problem. It could very well be a resource problem.
We don't know of any tools that could directly help you on this one, but we do have a couple troubleshooting suggestions:
Create a stripped-down app that just uses the timer to see if it happens without interaction with other threads in your application.
Run the timer faster to accelerate the failure.
Run the stripped-down app alongside your app to see if the failure rate increases.
One or more of these tests should help narrow down the source of the problem. If it turns out that the simplified application exhibits the same failure by itself, we'd be glad to look at it.