用timer控件实现sleep效果

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

有时候我们需要代码延迟执行,这就需要用到Thread.Sleep()这个方法,但这个方法在主线程使用时会造成界面假死。使用timer控件既能达到代码延迟执行的效果,又不会有假死的困扰。

假设我们需要在窗体的MouseMove事件里进行鼠标坐标的计算,但是MouseMove事件的执行是相当频繁的,如果每触发一次事件就计算一次,cpu占用率会非常高。有没有办法减少计算的次数呢?

首先声明timer控件

PRivateSystem.Timers.Timer mTimer;

mTimer=newSystem.Timers.Timer(200);

mTimer.AutoReset=false;

mTimer.Enabled=false;

mTimer.Elapsed+=newSystem.Timers.ElapsedEventHandler(mTimer_Elapsed);

在窗体的MouseMove事件里执行以下代码

if(!this.mTimer.Enabled)

{this.mTimer.Enabled =true;this.mTimer.Start();

}

在timer时间达到间隔时间的事件里执行计算代码

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航