vs2012-VB.net死循环中使用UI

问题描述

VB.net死循环中使用UI
要实现的功能:在死循环中使用VB的UI界面
窗体构成:1个Form(Form1):包含两个Button(Button1&&Button2)和一个List(LIstBox1)
运行环境:VS2012
VB代码:
Imports System.Threading
Public Class Form1
Public Declare Function GetTickCount Lib ""kernel32"" () As Integer
Public Stop_Enable As Boolean
Public n As Integer
Private Sub Form1_Load(sender As Object e As EventArgs) Handles MyBase.Load
Stop_Enable = False
n = 0
End Sub

        Private Sub Button1_Click(sender As Object e As EventArgs) Handles Button1.Click                Do While True                        If Stop_Enable Then                                Exit Do                        Else                                'hread.Sleep(100)                                Wait(100)                                ListBox1.Items.Add(n)                                ListBox1.TopIndex = ListBox1.Items.Count - 1                                n = n + 1                        End If                Loop        End Sub        Private Sub Button2_Click(sender As Object e As EventArgs) Handles Button2.Click                If Stop_Enable = True Then                        Stop_Enable = False                Else                        Stop_Enable = True                End If        End Sub        Public Sub Wait(DT As Long)                Static TT As Long                TT = GetTickCount()                Do                        Application.DoEvents()                        If GetTickCount - TT < 0 Then TT = GetTickCount                Loop Until GetTickCount - TT >= DT        End Sub        Public Sub Form_Paint()                Dim a As Control                For Each a In Me.Controls                        a.Invalidate()                Next        End SubEnd Class问题:为什么我要点击两下Button2,listbox才停止刷数使据?不是点一下就好了嘛?大神们还有什么好的方法,解决死循环中UI不能使用的方法吗?求大神指点!!!C金不多求大神回答啊!

解决方案

Do While True
Application.DoEvents() '加上这个
...

解决方案二:
vb.net中使用多线程

时间: 2024-11-02 11:34:46

vs2012-VB.net死循环中使用UI的相关文章

android-Android: 更新线程中的UI

问题描述 Android: 更新线程中的UI 我使用以下代码更新一个seekbar.问题是每当seekBar.setProgress()被调用时,UI上其它元素就被冻结.因此我想用另外一个线程在主线程中来更新 seekBar. private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { try { int pos; switch (msg.what) { case SH

Angular中使用ui router实现系统权限控制及开发遇到问题_AngularJS

前端去实现权限控制听起来有点扯淡(实际也有点扯淡),掩耳盗铃,主要是担心安全问题,但是如果在前后端分离的情况下,需要做一个带有权限控制的后台管理系统,angular基于ui-router应该怎么做呢? 权限的设计中比较常见的就是RBAC基于角色的访问控制,基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合.每一种角色对应一组相应的权限. 一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限.这样做的好处是,不必在每次创建用户时都进行分配

Android使用Sensor感应器实现线程中刷新UI创建android测力计的功能_Android

本文实例讲述了Android使用Sensor感应器实现线程中刷新UI创建android测力计的功能.分享给大家供大家参考,具体如下: 前面一篇<Android基于Sensor感应器获取重力感应加速度的方法>我们介绍了sensor的基本知识以及一个使用其中加速度感应器获取数据的例子. 前面提到过一个问题,就是说感应器刷新频率太快,假如我们要做一个UI中,需要根据方向数据绘制一个一个移动的箭头,那么就要太过频繁的刷新绘制界面,占用很多的资源,体验性也会很差,<android 2高级编程>

vs201-【求解】VS2012的工具菜单中的【选择工具箱项】窗口打不开

问题描述 [求解]VS2012的工具菜单中的[选择工具箱项]窗口打不开 VS2012和VS2013环境下加载AjaxControlToolKit时右键选择[选择项],可是该窗口没有反应. 请同仁帮忙解答下. 解决方案 尝试用安装包重新修复下看看. 解决方案二: 是没反应,还是反应慢,第一次加载那个窗体是很慢 解决方案三: 一开始打开,一般都会卡 解决方案四: 稍微耐心等下,如果你使用机械硬盘,而不是固态硬盘,那么运行VS2013就比较吃力了. 如果还不行,建议重装下系统. 解决方案五: http

UWP开发入门(十四)—— UserControl中Adaptive UI的小技巧

原文:UWP开发入门(十四)-- UserControl中Adaptive UI的小技巧 本篇我们通过绘制一个非常简单的UserControl控件,来分享一下对Adaptive UI的理解及一些图形绘制的技巧. 现在流行的APP都少不了精致的用户头像,首先假设我们需要绘制如下的图形作为默认头像: <UserControl x:Class="AdaptiveUserControl.Circle0" xmlns="http://schemas.microsoft.com/w

c++-QT调用软键盘,要输入的编辑框在对话框Dialog中(UI界面),怎样才能使得软键盘输入到编辑框中

问题描述 QT调用软键盘,要输入的编辑框在对话框Dialog中(UI界面),怎样才能使得软键盘输入到编辑框中 10C 我参考QT中自带的一个软键盘的例子,问题是在输入编辑框的过程中需要使用到FocusWidget()函数,但是这个函数又是属于QWidget类的,而我用的编辑框是在Dialog下的,我想问的是有没有什么办法可以使得FocusWidget()在QDialog类下使用(我想实现的是FocusDialog()函数,可惜QDialog类中没有这个函数啊)C++学的不好,对类的理解不够,希望

请问VB 6.0中怎么才能实现程序图标的拖动

问题描述 请问VB 6.0中怎么才能实现程序图标的拖动 请问VB 6.0中怎么才能实现程序图标的拖动,添加程序到程序收纳盒的功能,并且可以执行这个程序? 解决方案 可以在你的窗体的oledrogover事件里接收你收到的文件.

查询算法-vb将list中所有内容作为字段名查询

问题描述 vb将list中所有内容作为字段名查询 如题,如何将vb的list控件中所有内容作为字段名查询???????????

Android异步回调中的UI同步性问题

Android程序编码过程中,回调无处不在.从最常见的Activity生命周期回调开始,到BroadcastReceiver.Service以及Sqlite等.Activity.BroadcastReceiver和Service这些基本组件的回调路径和过程也就是通常意义上所谓的"生命周期".同时,在处理具体的业务逻辑时,常常设计到不同线程之间的通信,如下载图片完成后通知 UI线程更新UI,凡此类场景,无论使用哪一种具体的线程间通信方式(Handler/Message.Handler/p