I have a console application that I would like to keep open all of the time while still listening in to events. I have tested Thread.Sleep(Timeout.Infinite); an
Yes,
while(true) consumes CPU while sleep() works in a smarter way:
The sleep() function puts the current execution context to sleep; it does this by calling a syscall to invoke the kernel sleep function which atomically
(a) sets a wake-up timer
(b) marks the current process as sleeping
(c) waits until the wakeup-timer fires or an interrupt occurs
If you call sleep(), the CPU can do other work.
That's one reason why sleep() is useful.
A useful link - Be careful when using Sleep