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

 

原文地址:https://www.cnblogs.com/Uncle-Joker/p/13650514.html