问个VB的一个方法哈

MeBoss 2011-07-16 10:45:33
就是在点击某个按钮时,该按钮的操作会进行很长一段时间,所以界面会出现假死的情况,现在我想要的方法是在点击按钮后,我可以进行其它操作, 老大说有个这种方法,但是我不知道是那个方法,有人知道的吗 谢谢了
...全文
58 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 meboss 的回复:]
我需要检测i是否等于0,可是因为执行是时间很长,所以程序会假死,那么DoEvents应该加在那里呢。MonitorVal函数是模块里面函数。[/Quote]
设置一个定时器,把GetMotionStatus i以及判断的IF语句放在定时器事件里.

因为你这个循环没有处理别的事情,因此没性能要求,定时器是个好先选择.
MeBoss 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 veron_04 的回复:]
VB code

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
DoEvents
Loop While i <> 0

MonitorVal = True
End Function
[/Quote]

++++++1111111 3Q
MeBoss 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 veron_04 的回复:]
VB code

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
DoEvents
Loop While i <> 0

MonitorVal = True
End Function
[/Quote]
嗯 好滴 我试一试
MeBoss 2011-07-16
  • 打赏
  • 举报
回复
我加在函数里面貌似也没有效果呢?
贝隆 2011-07-16
  • 打赏
  • 举报
回复

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
DoEvents
Loop While i <> 0

MonitorVal = True
End Function




MeBoss 2011-07-16
  • 打赏
  • 举报
回复

Public Function MonitorVal() As Boolean
Dim i As Long
Do
GetMotionStatus i
Loop While i <> 0

MonitorVal = True
End Function


我需要检测i是否等于0,可是因为执行是时间很长,所以程序会假死,那么DoEvents应该加在那里呢。MonitorVal函数是模块里面函数。
threenewbee 2011-07-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 veron_04 的回复:]
一般情况下假死是长循环导致的,你按楼上的,在循环体中加入:DoEvents即可
该命令是将CPU资源返回给Windows,一边其他任务能及时享有CPU利用权。这样做可以防止程序假死,但也会带来循环运行速度大幅减慢。
[/Quote]

你看错了吧。你说的是 Sleep() API
DoEvents没有这个功能。它只是会去调用GetMessage() PeekMessage() 处理消息队列的消息。
贝隆 2011-07-16
  • 打赏
  • 举报
回复
一般情况下假死是长循环导致的,你按楼上的,在循环体中加入:DoEvents即可
该命令是将CPU资源返回给Windows,一边其他任务能及时享有CPU利用权。这样做可以防止程序假死,但也会带来循环运行速度大幅减慢。
threenewbee 2011-07-16
  • 打赏
  • 举报
回复
for i = 1 to 10000000
...
doevents
next

如果耗时时间很长的地方位于一个函数内,那就没办法了。VB也不支持多线程。
zdingyun 2011-07-16
  • 打赏
  • 举报
回复
在按钮事件的循环代码中加:
DoEvents
苦苦的潜行者 2011-07-16
  • 打赏
  • 举报
回复
没听说过.

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧