C# uptime компьютера

Первый способ, для многих компьютеров неправильный:
System.Windows.Forms.MessageBox.Show(((2147483648 + Environment.TickCount) / (1000 * 60)).ToString(), «test»);
Environment.TickCount – может не соответствовать милисекундам
 
Второй способ: везде советуют правильно мерять аптайм через PerformanceCounter(«System», «System Up Time»), работает примерно так:
var uptime = new PerformanceCounter(«System», «System Up Time»);
uptime.NextValue();
double uptimevalue = TimeSpan.FromSeconds(uptime.NextValue()).TotalMilliseconds;