搜索
热搜: 活动 交友 discuz
查看: 3793|回复: 13
收起左侧

C# 编写的计算机性能监视器

[复制链接]
  • TA的每日心情

    2016-1-25 16:08
  • 签到天数: 63 天

    [LV.6]常住居民II

    发表于 2016-1-8 17:48:16 | 显示全部楼层 |阅读模式
    本例使用C# PerformanceCounter 对象完成对计算机性能的监视。
    关于PerformanceCounter对象可自行MSDN

    程序中还通过C#自带的Chart控件实现对数据的实时统计。如下图所示


    图表会根据时间来自行滚动,保留的最大长度为180秒。


    其中图表的关键代码如下:

    [C#] 纯文本查看 复制代码
    public void AddNewPoint(DateTime timeStamp, System.Windows.Forms.DataVisualization.Charting.Series ptSeries, double value)
            {
                ptSeries.Points.AddXY(timeStamp.ToOADate(), value);
                //移出过时的数据
                double removeBefore = timeStamp.AddSeconds((double)(180) * (-1)).ToOADate();
                while (ptSeries.Points[0].XValue < removeBefore)
                {
                    ptSeries.Points.RemoveAt(0);
                }
                //重新确定X轴的范围
                chart1.ChartAreas[0].AxisX.Minimum = ptSeries.Points[0].XValue;
                chart1.ChartAreas[0].AxisX.Maximum = DateTime.FromOADate(ptSeries.Points[0].XValue).AddSeconds(200).ToOADate();
                //重新确定Y轴的范围
                if (value>= chart1.ChartAreas[0].AxisY.Maximum)
                {
                    chart1.ChartAreas[0].AxisY.Minimum = 0;
                    chart1.ChartAreas[0].AxisY.Maximum = Convert.ToInt64((value+value*0.1)==0?100: value + value * 0.1);
                }
                chart1.Invalidate();
            }
    
            /// <summary>
            /// Method which is invoked from the thread to add series points
            /// </summary>
            public void AddData(double value)
            {
                DateTime timeStamp = DateTime.Now;
                //遍历图例
                foreach (Series ptSeries in chart1.Series)
                {
                    AddNewPoint(timeStamp, ptSeries,value);
                }
            }
    
            private void ChartInit(string seriesname,string initvalue)
            {
                //初始化图例
                minValue = DateTime.Now;
                maxValue = minValue.AddSeconds(60);
                chart1.ChartAreas[0].AxisX.Minimum = minValue.ToOADate();
                chart1.ChartAreas[0].AxisX.Maximum = maxValue.ToOADate();
                chart1.Series.Clear();
                Series newSeries = new Series(seriesname);
                newSeries.ChartType = SeriesChartType.Line;
                newSeries.BorderWidth = 1;
                newSeries.Color = Color.FromArgb(224, 64, 10);
                newSeries.ShadowOffset = 1;
                newSeries.XValueType = ChartValueType.DateTime;
                chart1.ChartAreas[0].AxisY.Minimum = 0;
                chart1.ChartAreas[0].AxisY.Maximum = 100;
                chart1.Series.Add(newSeries);
            }


    大概就是这样了。源码在下面下载咯~

    游客,如果您要查看本帖隐藏内容请回复


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?入住

    x

    该用户从未签到

    发表于 2016-1-8 19:07:01 | 显示全部楼层
    下载下来研究一下
  • TA的每日心情

    2018-1-4 09:33
  • 签到天数: 363 天

    [LV.8]以坛为家I

    发表于 2016-1-8 20:44:13 | 显示全部楼层
    不懂,看看!
  • TA的每日心情
    开心
    2014-1-10 09:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-1-9 10:46:00 | 显示全部楼层
    學習學習
  • TA的每日心情
    奋斗
    2019-1-5 01:55
  • 签到天数: 138 天

    [LV.7]常住居民III

    发表于 2016-1-9 15:32:10 | 显示全部楼层
    图标控件用的是微软的控件?

    点评

    就是用的CS自带的那个Char控件  详情 回复 发表于 2016-1-11 09:20
  • TA的每日心情
    开心
    2015-11-28 12:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-1-9 15:52:38 | 显示全部楼层
    谢谢啦 哈哈哈
  • TA的每日心情

    2016-1-25 16:08
  • 签到天数: 63 天

    [LV.6]常住居民II

     楼主| 发表于 2016-1-11 09:20:47 | 显示全部楼层
    木魚 发表于 2016-1-9 15:32
    图标控件用的是微软的控件?

    就是用的VS自带的那个Char控件

    该用户从未签到

    发表于 2017-4-16 14:57:58 | 显示全部楼层
    不懂看看
  • TA的每日心情
    奋斗
    2015-10-8 16:50
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2017-5-17 21:14:02 | 显示全部楼层
    强悍,谢谢分享

    该用户从未签到

    发表于 2017-7-7 15:20:37 | 显示全部楼层
    oiloliloiloifew威锋网·
    您需要登录后才可以回帖 登录 | 入住

    本版积分规则

    申请友链| Archiver| 手机版| 鱼·后花园

    GMT+8, 2024-11-21 17:31 , Processed in 0.026490 second(s), 22 queries , Redis On.

    Powered by Discuz! X3.4

    © 2005-2024 鱼·后花园

    快速回复 返回顶部 返回列表