
正文
vb.net控件多卡顿 vbnet console
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB运行时容易无响应,显示有问题,很卡。如何解决?
DoEvents语句用的太多了,每次循环都会刷新,这跟不上计算的速度,比如说可以每100次循环执行一次DoEvents。
适当调整to后的值,即是交出足够的时间给系统做出反应。不过会影响到程序运行的速度。
这里不需要sleep,在循环中加入doevents就好了。
死循环。这是最常见的。循环很长,虽然没有死。检查与查找的方法:在没有响应时,按下ctrl-break(这两个按钮同时按下,break在小键盘上)。然后可以看到黄色的光标条遮罩着一条语句,这条语句应该在一个循环之内。
你好,你的程序中加这么多sleep,肯定会卡死的。Sleep的延时功能,使用后则程序就处于一个全局停顿状态,程序不会接受任何新事件。
你好!这是由于Vista 与 VB0的兼容性问题引起的。
相关问答
Q1: VB.NET开发的窗体程序为什么会卡?
1、控件多vb.net控件多卡顿了vb.net控件多卡顿,电脑必然会慢vb.net控件多卡顿,因为在 Windows 里每个控件都相当于一个窗口,有自己vb.net控件多卡顿的句柄,系统需要维护对应vb.net控件多卡顿的窗口消息,那么一定会卡顿,只能缓解不能消除。
2、所谓的“上位机传数据”,是指系统收到端口信息后,触发你代码中相应对象的事件,然后在事件处理代码中把数据写到窗体上的。
3、DoEvents语句用的太多了,每次循环都会刷新,这跟不上计算的速度,比如说可以每100次循环执行一次DoEvents。
4、“卡死”是一个非常主观的描述,如果你要让主线程杀掉卡死的线程,那么你必须给“卡死”做出准确的定义。
5、可以考虑使用Cache(缓存)技术,对于不经常变化的数据可以采用静态Cache,对于可能经常被修改的数据可以采用数据库依赖的通知Cache更新技术。
Q2: VB.NET有延时也会被卡死
可能进入了死循环,仔细检查代码有无这种情况。无用的数据一直在累积而没有及时销毁,导致内存占用越来越大,最终崩溃。要注意对象随用随清,及时 Dispose 掉或调用 GC.Collect。
你给出这些条件以后,杀掉一个线程就不难。Abort方法,Dispose方法,都可以。
读取数据。根据查询vb.nettimer相关信息得知,vb.nettimer间隔短死机是因为,VB程序中有一个timer,还有on error语句,timer里就是从一个数据库读取数据存入到另一个数据库中,正常运行,但是有时候会卡死。
卡顿主要原因:控件多了,电脑必然会慢,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。
Q3: 使用vb.net接收大量串口数据时,界面卡顿
1、对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
2、卡顿主要原因:控件多了,电脑必然会慢,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。
3、不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
Q4: VB移动控件的时候很卡总是闪烁怎么解决
1、闪烁是因为时间间隔太大和移动距离所致。所以建议把间隔该小些,同样每次移动的距离也要小一些。当然喽时间间隔太小会浪费系统资源。
2、右击VBexe的快捷方式,选择 属性\兼容性\更改所有用户设置\禁用桌面元素。
3、那是因为VB6不支持aero特效,你把win7的Aero特效关了,或者在VB6快捷方式上点右键——属性,选择兼容性选项卡,然后勾选禁用视觉主题。
4、vb0不支持windows7的Aero效果,在桌面上单击右键→个性化→将桌面主题选为windows 7 basic或windows 经典 就可以了。希望你可以开心用vb。
关于vb.net控件多卡顿和vbnet console的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






