Foxtable(狐表)用户栏目专家坐堂 → 关于异步函数问题


  共有3440人关注过本帖树形打印复制链接

主题:关于异步函数问题

帅哥哟,离线,有人找我吗?
benben325
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1571 威望:0 精华:0 注册:2021/8/9 16:05:00
关于异步函数问题  发帖心情 Post By:2023/6/21 9:56:00 [只看该作者]

主体代码结构如下:
代码片段1
    functions.exe("函数1")
代码片段2


函数1代码如下:
   functions.AsyncExecute("函数2")
   functions.AsyncExecute("函数3")
   functions.AsyncExecute("函数4")


在执行主体代码的时候,代码片段1 到 代码片段2  并没有等待 函数1执行完成。。。
有什么办法,让代码1 到代码2 中进行等待,等待 函数1里面所有的函数都执行完成?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/21 10:11:00 [只看该作者]

要借助同步函数:http://www.foxtable.com/mobilehelp/topics/3270.htm

增加一个全局变量
Public TCount As Integer

增加一个同步函数,比如名称【同步1】。代码为:
TCount = TCount - 1

"函数2、3、4"里面最后增加一句代码
……
Functions.BeginSyncExecute("同步1")

函数1代码改为:
TCount = 3
   functions.AsyncExecute("函数2")
   functions.AsyncExecute("函数3")
   functions.AsyncExecute("函数4")
do while TCount > 0
Application.DoEvents
loop


 回到顶部
帅哥哟,离线,有人找我吗?
benben325
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1571 威望:0 精华:0 注册:2021/8/9 16:05:00
  发帖心情 Post By:2023/6/21 10:17:00 [只看该作者]

请问  Public TCount as Integer 这种全局变量  和 Vars("TCount") 这种全局变量有区别么?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/21 10:20:00 [只看该作者]

异步函数里只能使用 Public 变量。其它基本没有什么区别。

 回到顶部
帅哥哟,离线,有人找我吗?
benben325
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1571 威望:0 精华:0 注册:2021/8/9 16:05:00
  发帖心情 Post By:2023/6/21 13:22:00 [只看该作者]

老师,还有个问题,我用狐表做的后台,若多个用户发送了 执行这个任务的指令,是不是TCount  会冲突?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/21 13:43:00 [只看该作者]

会冲突的。考虑建个表,有列用户名,计数等,每个用户执行的时候,查询有没有自己名称的行,没就新增,然后更改判断这一行的计数列值

 回到顶部