It is possible to retrieve the current temperature of the cpu easily using System.Management namespace. This is useful for monitoring your cpu for overheating or the fan for malfunctioning. To get the temperature we issue a WMI Query against the MSStorageDriver_ATAPISmartData and read the 115th byte in its VendorSpecific array property where the temperature is stored. I have encountered cases where the temperature byte is different than 115 because this is vendor specific, but for the most cases its 115.
the implementation is posted here with more explanation
Get CPU Temperature in .Net