毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

C#界面定时器启动后很卡

更新时间:2016-3-28:  来源:毕业论文

在C#界面加了一个定时器,启动后会执行一个耗时的计算,导致界面很卡,请问有什么办法解决

多线程里有
System.Threading.Timer代替控件Timer
或者你把Timer_Tick事件里的代码用多线程处理,这有Timer控件就在多线程外了
再或者你多线程要用委托来处理,这有控件Timer就可以在多线程里访问了

以上三个方法你任选一个
这是最直接的,只是会发生一种情况,要考虑到:
耗时操作的时间不能大于定时器的间隔,也就是说定时器触发时,前面的耗时操作必须完成,不然就重复。
必须对这种情况做出选择和处理。
System.Timers.Timer ti = new System.Timers.Timer();
ti.Elapsed += new ElapsedEventHandler(this.ti_Elapsed);
private void ti_Elapsed(object sender, ElapsedEventArgs e)
        {
            tin.Interval = 1000;     //时间间隔
//定时启动事件

        }
 private void Form1_Load(object sender, EventArgs e)
        {
            tin.Interval = 1000;
            tin.Enabled = true;
}
这个是一个解决办法,但是它违背了定时器原本的需求:间隔xxxxx毫秒触发一次。
 这样子操作,每次间隔时间=tin.Interval+操作耗时。后者是不确定的。允许这样的需求就可以,否则不行。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。