以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 一个异步函数的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142383) |
-- 作者:304376480 -- 发布时间: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 中执行的代码是在主线程还是子线程中?
|
-- 作者:有点蓝 -- 发布时间:2019/10/25 11:47:00 -- 首先上面所有的用法都有严重的问题,原因:http://www.foxtable.com/mobilehelp/topics/277.htm 然后我们抛开逻辑谈代码 Functions.AsyncExecute("Task") 执行这一句代码的时候,肯定是在主线程的。接着Task函数里面的代码会在子线程中执行
|
-- 作者:304376480 -- 发布时间:2019/10/25 11:59:00 -- 这一行代 tables("表A").current("逻辑列") = true 会在子线程中执行, 但触发的 DataColChanged 事件里的代码,是主线程还是子线程运行?
|
-- 作者:有点蓝 -- 发布时间:2019/10/25 12:01:00 -- 不管是表事件,项目事件还是窗口控件事件都是在主线程运行的 |