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


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

主题:一个异步函数的问题

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


加好友 发短信
等级:小狐 帖子:339 积分:3766 威望:0 精华:0 注册:2017/9/7 15:20:00
一个异步函数的问题  发帖心情 Post By:2019/10/25 11:39:00 [只看该作者]

老师,您好!请看示例:

问题1:增加一个名为"Task"的函数,代码为:tables("表A").current("逻辑列") = true
如果 表A 的 DataColChanging 和 DataColChanged 事件中,当“逻辑列”= true 时会执行一段代码,
那么,执行Functions.AsyncExecute("Task")  的话,
DataColChanging 和 DataColChanged 事件中执行的代码是在主线程还是在子线程中?

问题2:如果,"Task"的函数,代码为:forms("窗口1").close
执行Functions.AsyncExecute("Task"
那么,事件 AfterClose 和 BeforeClose 中执行的代码是在主线程还是子线程中?

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


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

首先上面所有的用法都有严重的问题,原因:http://www.foxtable.com/mobilehelp/topics/277.htm

然后我们抛开逻辑谈代码

Functions.AsyncExecute("Task") 执行这一句代码的时候,肯定是在主线程的。接着Task函数里面的代码会在子线程中执行

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


加好友 发短信
等级:小狐 帖子:339 积分:3766 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2019/10/25 11:59:00 [只看该作者]

这一行代 tables("表A").current("逻辑列") = true 会在子线程中执行,

但触发的 DataColChanged 事件里的代码,是主线程还是子线程运行?

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


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

不管是表事件,项目事件还是窗口控件事件都是在主线程运行的

 回到顶部