C#开发PACS医学影像处理系统(四):界面布局之状态栏
状态栏一般用于显示系统状态,例如影像数量统计、CPU和内存使用情况、全屏时显示日期等,
同样也是采用WPF控件的Grid作为容器,布局使用 VerticalAlignment="Bottom"
普通配置的Win7和Win10一般内存使用不超过200M,CPU不超过5,除了一些老医院还在用XP系统,实在太烂可以放宽要求,但要保证软件的运行速度和控制资源占用。
其中CPU、内存、系统时间监控代码如下:
/// <summary> /// 获取程序运行内存、CPU、系统时间 /// </summary> /// <returns></returns> internal static void GetRamInfo() { try { double usedMemory = 0; Process p = Process.GetCurrentProcess(); if (p != null) { p.Refresh(); string procName = p.ProcessName; if (pc == null) { pc = new PerformanceCounter("Process", "Working Set - Private", procName); GetRamInfo(); } else { while (true) { usedMemory = pc.NextValue() / 1024.0 / 1024.0; //当前时间 var curTime = p.TotalProcessorTime; //间隔时间内的CPU运行时间除以逻辑CPU数量 var value = (curTime - prevCpuTime).TotalMilliseconds / interval / Environment.ProcessorCount * 100; prevCpuTime = curTime; string week = Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString(); SysTask.SetTaskUI(() => { Main.Form.LblCpu.Text = "CPU:" + ((int)value).ToString() + "% "; Main.Form.LblRam.Text = "内存:" + ((int)usedMemory).ToString() + "M "; Main.Form.LblWeek.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + week; }); Thread.Sleep(1000); } } } } catch { } } #endregion