Я думаю, что это очень просто, но я запутался в том, как установить переменную «результат» (см. Код ниже), чтобы я мог вызвать ее позже в программе, когда я хочу, чтобы таймер отображал текущее использование ОЗУ, разделенноепо общей установленной оперативной памяти, чтобы собрать процент использования.То, как WMI собирает установленную оперативную память, сбивает меня с толку, поскольку это должно привести к результату ["TotalVisibleMemorySize"].Проблема с наличием целого блока кода в таймере заключается в том, что он обновляется каждые 2 секунды, что действительно задерживает счетчик, поскольку WMI работает медленно.Спасибо!
private void Form1_Load(object sender, EventArgs e)
{
ObjectQuery wql = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wql);
ManagementObjectCollection results = searcher.Get();
foreach (ManagementObject result in results)
{
label1.Text = Convert.ToInt32(result["TotalVisibleMemorySize"]) + " KB";
}
}
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value = (int)(performanceCounter1.NextValue() - Convert.ToInt32(result["TotalVisibleMemorySize"]));
label1.Text = "Processor Time: " + progressBar1.Value.ToString() + "%";
}