Как получить работоспособность системы в 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()