No lo he probado en .NET, pero puedes intentar llamar el API getsysteminfo de la dll kernel32.dll (api del sistema operativo)
En c# va mas o menos asi :
Código:
using System.Runtime.InteropServices;
//Estructura que sera parametro de la funcion
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEM_INFO
{
public uint dwOemId;
public uint dwPageSize;
public uint lpMinimumApplicationAddress;
public uint lpMaximumApplicationAddress;
public uint dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public uint dwProcessorLevel;
public uint dwProcessorRevision;
}
[DllImport("kernel32.dll")]
static extern void GetSystemInfo(ref SYSTEM_INFO pSI);
// y de aqui lo invocamos
protected void button1_Click (object sender, System.EventArgs e)
{
SYSTEM_INFO pSI = new SYSTEM_INFO();
GetSystemInfo(ref pSI);
Response.Write(pSI.dwActiveProcessorMask.ToString());
}