请教vb多线程的问题(在线等) 现公司做一个项目,有一部分是用vb6.0开发的,本人以前从没有用过vb,请问各位大虾,比如我要实现一个这样的功能:窗口上有两个按钮,一个Start,一个Stop。我想点Start的时候执行一个操作,点Stop的时候停止这个操作。请问是否得用多线程,在java中很容易实现,可是在vb中呢?最好给我一个小例子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用多线程也可以在Start里的代码加DoEvents,放弃控制权就可以了 Option ExplicitPrivate isBusy As BooleanPrivate Sub Command1_Click() isBusy = True While isBusy = True Text1 = Val(Text1) + 1 DoEvents WendEnd SubPrivate Sub Command2_Click() isBusy = FalseEnd Sub 知道怎么用了。学了好多东西阿。刚查到说有一个API函数GetInputState能提高DoEvents的性能,但不知道是如何在程序中声明的。谁能帮我贴出来啊,我这没有msdn. 不要用GetInputState,CPU占用N高。还不如用Sleep(1)来降低CPU占用率呢!!! Q: 用了doevents速度太慢了怎么办? A: doevents的代价是速度变慢,但要程序响应又不得不用 其实doevents语句允许任何应用程序执行相关事件,而不仅仅是你自己的程序,所以变得很慢. 可以让它响应本程序事件动作,需要用到api函数GetInputState 例如用: If GetInputState() Then DoEvents '来代替doevents可使循环运行更快 其实我也觉得用了后速度变慢了。不知道有什么好办法吗?用Sleep(1)好像会更慢吧? Public Declare Function GetInputState Lib "user32" Alias "GetInputState" () As Long 对于现在大部分以G来计的CPU来说Doevents造成的这点速度延迟算什么,但是GetInputState在两个程序同时运行时(两个程序同时有Doevents),就不光是速度慢了,内存和CPU的占用情况简直是恐怖啊。而使用Doevnets的死循环如果执行的语句不多的话,CPU占用率会持续上升至100%,只有在Doevents前加上Sleep才能避免这种现象,而最小的Sleep运行函数就是Sleep(1),顺便说一句,C里边就是这么处理的。 楼上她本来就嫌慢,你还让她sleep?她要的不是响应,是速度,嘿嘿~ 编译错误:未找到方法或数据成员 读取access表,做一次查询后想再做一次查询,甚至多次累计查询 串口通信发送慢 api函数声明时,为何必须指定别名呢? 激活已启动程序... 如何在VB中实现HTTP文件上传 请问如何取得别的窗体(控件)的ToolTipText的内容,高手指点 有关VB的基础问题~~菜鸟求助 请教一个关于实时曲线的问题,如何在picturebox中同时显示多条实时曲线 怎麼從VB中得知我打開的數據庫表中某個字段的字段類型? 急!ocx 注册后的classid 哪里找? 【连接mysql问题】请问VB如何连接远程mysql数据库(服务器是Linux,mysql数据库,局域网)
在Start里的代码加DoEvents,放弃控制权就可以了
Private isBusy As Boolean
Private Sub Command1_Click()
isBusy = True
While isBusy = True
Text1 = Val(Text1) + 1
DoEvents
Wend
End SubPrivate Sub Command2_Click()
isBusy = False
End Sub
A: doevents的代价是速度变慢,但要程序响应又不得不用
其实doevents语句允许任何应用程序执行相关事件,而不仅仅是你自己的程序,所以变得很慢.
可以让它响应本程序事件动作,需要用到api函数GetInputState
例如用: If GetInputState() Then DoEvents '来代替doevents可使循环运行更快 其实我也觉得用了后速度变慢了。不知道有什么好办法吗?用Sleep(1)好像会更慢吧?
而使用Doevnets的死循环如果执行的语句不多的话,CPU占用率会持续上升至100%,只有在Doevents前加上Sleep才能避免这种现象,而最小的Sleep运行函数就是Sleep(1),顺便说一句,C里边就是这么处理的。
她本来就嫌慢,你还让她sleep?
她要的不是响应,是速度,嘿嘿~