I am working on a background program that will be running for a long time, and I have a external logging program (SmartInspect) that I want to feed with some values periodic
Have a look at System.Diagnostics.PerformanceCounter. If you run up perfmon.exe, you'll see the range of performance counters available to you (set the 'performance object' to 'Process'), one of which is '% Processor Time'.