/ Published in: C#
                    
                                        
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms;
namespace CpuWhiner
{
class Program
{
//
// To enable this to be 'user friendly' at start-up. We need to
// suppress the console window.
//
// The following two methods will help us achieve this
// FindWindow MSDN
// http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx
//
// ShowWindow MSDN
// http://msdn.microsoft.com/en-us/library/ms633548(VS.85).aspx
//
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,
string lpWindowName);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
static void Main(string[] args)
{
// Give our window a unique title
Console.Title = "CpuWhinerConsoleWindow";
// Create our pointer to our console window
// and if the window was found, hide it
IntPtr hWnd = FindWindow(null, Console.Title);
if (hWnd != IntPtr.Zero)
{
// Hide the console window
ShowWindow(hWnd, 0);
}
// For our main loop, in my case, I opted to add
// some functionality in that slept the loop for
// 5 minutes if it found that it was charing. This
// way I wasn't using up "unnecessary" CPU cycles
//
// Of course, all you need to call is StopWhining(); if
// you want to keep the CPU busy for any length of time.
while (true)
{
if (SystemInformation.PowerStatus.BatteryChargeStatus !=
BatteryChargeStatus.Charging &&
SystemInformation.PowerStatus.PowerLineStatus !=
PowerLineStatus.Online)
{
StopWhining();
}
else
{
// Sleep for 5 minutes since we are charing
// and most likely aren't hearing the 'whine'
Thread.Sleep(TimeSpan.FromMinutes(5.00));
}
}
}
/// <summary>
/// This really does nothing except add
/// 1000 values to an array and then adds
/// another 1000 as it counts back down.
/// </summary>
private static void StopWhining()
{
for (int i = 0; i < 1000; i++)
{
phone[i] = 31337.666;
}
for (int i = 999; i >= 0; i--)
{
phone[i] = 666.31337;
}
}
}
}
URL: http://blog.zerklabs.com/2010/11/would-you-like-some-c-sharp-cheese-with-that-cpu-whine/
Comments
 Subscribe to comments
                    Subscribe to comments
                
                