System.Diagnostics.Stopwatch

System.Diagnostics.Stopwatch

注意:此类在 .NET Framework 2.0 版中是新增的。MSDN

 

Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。

Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。通过属性 ElapsedElapsedMilliseconds 或ElapsedTicks 查询运行时间值。当实例正在运行或已停止时,可以查询运行时间属性。运行时间属性在 Stopwatch 运行期间稳固递增;在该实例停止时保持不变。

默认情况下,Stopwatch 实例的运行时间值相当于所有测量的时间间隔的总和。每次调用 Start 时开始累计运行时间计数;每次调用 Stop 时结束当前时间间隔测量,并冻结累计运行时间值。使用 Reset 方法可以清除现有 Stopwatch 实例中的累计运行时间

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化代码:public static string ReadRegister(SerialPort sp, string registerAddr, int numberOfPoints, string type) { try { sp.DiscardOutBuffer(); sp.DiscardInBuffer(); string value = null; byte[] readbytes = Read(registerAddr, numberOfPoints); sp.Write(readbytes, 0, readbytes.Length); Byte[] ReceivedData = new Byte[4 + numberOfPoints * 2]; //创建接收字节数组 int i = 0; //long timespan2 = 0; //System.Diagnostics.Stopwatch watch2 = new System.Diagnostics.Stopwatch(); //watch2.Start(); //开始监视代码运行时间 while (true) { i++; if (sp.BytesToRead == 4 + numberOfPoints * 2) { sp.Read(ReceivedData, 0, sp.BytesToRead); //读取所接收到的数据 byte[] temp = new byte[numberOfPoints]; for (int j = 0; j < numberOfPoints; j++) { try { temp[j] = Convert.ToByte(Convert.ToInt16((Chr(ReceivedData[j * 2 + 1]) + Chr(ReceivedData[j * 2 + 2])), 16)); } catch { return null; } } switch (type) { case "float": value = BytesToFloat(temp).ToString("f4"); break; case "int32": value = BytesToInt32(temp).ToString(); break; case "int16": //value = Status(BytesToInt16(temp)); value = BytesToInt16(temp).ToString(); break; case "byte": value = Convert.ToString(temp[0], 2).PadLeft(8, '0'); break; case "2bytes": value = Convert.ToString(temp[0], 2).PadLeft(8, '0'); break; case "bit": value = Convert.ToString(temp[0], 2).Substring(0, 1); break; } break; } if (i > 100000) break;//10000=440ms左右 } //watch2.Stop(); //停止监视 //timespan2 = watch2.ElapsedMilliseconds; //获取当前实例测量得出的总时间 //return ReceivedData; return value; } catch { return null; } }
最新发布
05-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值