Как получить работоспособность системы в Mono на Ubuntu Server?

Мой код в Windows использовал P/Invoke для вызова GetTickCount64() из kernel32.dll Это не работает под Mono на Ubuntu Server 14 - я получаю EntryPointNotFoundException,

Там этот подход с использованием PerformanceCounter, Он работает в Windows, но когда я использую его в Linux с именем / категорией счетчика, установленным на System/System Up Time это дает ноль временные промежутки все время. Так что это тоже не работает.

Environment.Tickount работает так же, как в Windows, но переполняется каждые 47 дней, и это может привести к сбивающим с толку результатам для моего сценария использования, поэтому я бы предпочел 64-битный счетчик.

Как получить работоспособность системы в коде C#, работающем с Mono на Ubuntu Server?

1 ответ

Lex Li связался с этим тесно связанным вопросом для кода C.

Среди ответов есть тот, который предлагает читать из /proc/uptime, Это просто замечательно для кода на C# - его можно использовать File.ReadAllText() и затем проанализируйте полученную строку.

var uptimeText = File.ReadAllText( "/proc/uptime" );
// Now split the string to extract the first component,
// parse it as double and use TimeSpan.FromSeconds()
Другие вопросы по тегам