views:

36

answers:

3

I want to use extra-cpu cycles to do some of my own processing, and I was wondering if someone could point me in the right direction as to how to get started on this?

+1  A: 

You can use extra CPU cycles by writing a program that runs in the background.

You can check the CPU usage to find out when the computer is idle (but it's not necessarily a good idea), or you can listen for mouse/keyboard activity.

To check CPU usage in C#, use the following code:

float cpuUsage;    //Between 0 and 100
using (var cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total")) {
    cpu.NextValue();    //First call gives wrong values
    cpuUsage = cpu.NextValue();
}

To check for keyboard or mouse activity, you'll need to use a keyboard / mouse hook; see here for instructions.

SLaks
I would advise against checking CPU Usage, as this polling itself takes CPU.
C. Ross
+3  A: 

I would suggest writing a program that runs continuously (make sure it blocks occasionally), and then simply setting it to a low priority. The OS Scheduler (Windows/*nix) should handle the rest automatically.

C. Ross
+1  A: 

Write an application. Set its thread priorities to "background". Job done ;)

Goz