C#使用定时器导致子界面在鼠标拖动时不流畅,会一卡一卡的,如何解决?
我的一个程序里面有一个定时器从程序开始就要定时扫描运动控制卡的当前坐标,而当我打开另外一个窗体的时候,发现拖动该窗体的时候会出现一卡一卡的,请教大神如何解决!...
我的一个程序里面有一个定时器从程序开始就要定时扫描运动控制卡的当前坐标,而当我打开另外一个窗体的时候,发现拖动该窗体的时候会出现一卡一卡的,请教大神如何解决!
展开
4个回答
展开全部
System.Windows.Forms.Timer
类是使用UI线程工作的,所以在使用该类时要注意一定不要执行耗时较多的操作。这样会导致UI失去响应,因为UI线程去做别的工作而无法对UI进行响应或渲染。
解决的方案是使用线程/线程池来进行耗时较多工作的执行操作。
更多追问追答
追问
使用线程能我知道,但是这样写有个疑问,我线程只执行了一次就线程自动销毁掉了,难道在里面做死循环给他去不停的执行吗?这样貌似不靠谱吧?我想要的是不停的去采集,而且貌似我采集的东西可能有点慢。求大神解决!方便的话留个邮箱给我zoudai79584100@163.com
追答
如果是持续性的工作可以使用while循环的方式来做。
也可以使用System.Threading.Timer来做。这是一个使用多线程的计时器。
展开全部
在适当位置加上doevents();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
新建一个线程吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是在UI线程上使用了定时器?考虑多线程吧,.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询