Application.DoEvents()的作用:处理当前在消息队列中的所有 Windows 消息。
测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显示一个9999,加上后会数字变换正常显示。
从这个测验后DoEvents的功能,应该DoEvents就好比实现了进程的同步。在不加的时候,因为优先级的问题,程序会执行主进程的代码,再执行别代码,而加了以后就可以同步执行。
交出CPU控制权,让系统可以处理队列中的所有Windows消息,比如在大运算量循环内, 加Application.DoEvents可以防止界面停止响应,因为winform的消息循环是通过新创建一个线程来处理的,那么假如你的某个操作比较耗时,那么消息处理得等你这个耗时操作做完了才能继续,而Application.DoEvents方法就是允许你在耗时操作的内部调用它,而去处理消息队列中的消息。像鼠标移动鼠标点击都是windows消息,如果耗时操作一直进行,那么界面就像死锁一样。
引文连接:
使用Application.DoEvents()的坏处:
Original: https://www.cnblogs.com/soundcode/p/15951696.html
Author: 左正
Title: Application.DoEvents()的作用
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/545586/
转载文章受原作者版权保护。转载请注明原作者出处!