在部分效率测试的项目中,很多时候需要使用到秒表,虽然网上有可用的运行版本,但是加入不了自己的需求,于是就使用C#来写一个。
程序的逻辑很简单,就是使用一个时钟,把时间间隔设置为1。但是当时间间隔小于100毫秒时,再加上程序执行上的耗时,如果使用计数器来统计时间,哪时间就变得很不精确了,为了得到较为精确的计时,我们不使用计数器,而是时钟每次触发时,就使用当前的时间和最初的时间差,即刻度。可以使用Stopwatch类,本程序使用的是取系统的当前时间。
实现片断:
System.Windows.Forms.Timer m_Timer = new Timer();
m_Timer.Interval = 1;
在Timer的Tick事件里的实现,使用TimeSpan作为时间刻度:
TimeSpan span = DateTime.Now - m_StartTime;
DateTime n = new DateTime(span.Ticks);
lblTime.Text = n.ToString("HH:mm:ss:fff");
这样就算Tick的触发不是很准确,但也不影响计算的时间间隔。
在程序实现屏幕截图:
Image img = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(img);
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), img.Size);
g.Dispose();
Clipboard.SetDataObject(img, false);
其他的细节就不再细述了,使用都自己完成,所以也不上传原码了。