讨厌的Doevents!!

issacgao 2002-06-26 02:46:37
Doevents最大的问题是会导致事件的重复触发;

sub winsock_dataarrival()
....
...
...
call sub2
...
...
...

end sub

sub sub2 ()
...
...
doevents'此时就可能又触发dataarrival事件,并且是从头进入,好象前面的事件处理程序不存在一样,整个逻辑就全乱了套了!!!!大家有什么好的处理办法?

...
...

end sub
...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
issacgao 2002-06-27
  • 打赏
  • 举报
回复
可增加逻辑开关后,新数据到来时如没有处理直接退出了事件处理过程,
以后就再不会触发了,接收缓存区里的数据也就不会被读取了.

是不是?
qbilbo 2002-06-26
  • 打赏
  • 举报
回复
定义一个模块级变量,如Running
sub winsock_dataarrival()
if Running=true then
exit sub
else
Running=true
end if

....
...
...
call sub2
...
...
...

Running=false
end sub

sub sub2 ()
...
...
doevents'
绿洲 2002-06-26
  • 打赏
  • 举报
回复
增加逻辑开关,在事件入口加以判断,进一步的方法参见并发程序设计。

7,763

社区成员

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

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