I have a windows forms application that occasionally eats
100% of the hosts system's CPU indefintely. If I break
execution and selectively freeze threads, the culprit
seems to be the thread named ".NET System Events".

That thread is in a tight loop within
SystemEvents.WindowThreadProc. I don't understand the
disassembly, but it appears to be stuck completely within
that method as I step through it.

As I understand it, that thread is responsible for
calling events when system properties change. I have
hooked none of these events in my code, and like I said
the thread appears to be looping entirely within the
WindowThreadProc method.

This happens most often when coming back from a Fast User
Switch in XP or resuming from a suspended/hibernated
state.

What is going on?? How can I work around this? It's
noticed by customers and makes us look bad.

-Brian