以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 这些通讯的处理函数能否全部异步【openQQ/udpclient/httprequest】 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=121633) |
-- 作者:ycli368 -- 发布时间:2018/7/10 18:53:00 -- 这些通讯的处理函数能否全部异步【openQQ/udpclient/httprequest】 openQQ/udpclient/httprequest这些通讯功能的处理函数能否都异步 举例:软件设计的是本机主程序和本机其他几个子程序采用 udpclient 通讯 udPclient ReceivedMessage 里面调用了 Functions.AsyncExecute 进行多线程处理 但是ReceivedMessage 仍是在主程序里执行,1个子程序上报任务需要主程序占用处理时 第二个子程序再上报时,主程序udPclient ReceivedMessage 此时 因为主线程被占用,无法处理消息 导致任务上报不成功
[此贴子已经被作者于2018/7/10 18:55:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/7/10 20:01:00 -- ReceivedMessage 原来的逻辑放到函数里,通过Functions.AsyncExecute调用函数即可 |
-- 作者:ycli368 -- 发布时间:2018/7/10 20:15:00 -- 以下是引用有点蓝在2018/7/10 20:01:00的发言: ReceivedMessage 原来的逻辑放到函数里,通过Functions.AsyncExecute调用函数即可 是这样设计的额,但是主进程被占用后,ReceivedMessage 就阻塞了,后面的消息就不再分发了 [此贴子已经被作者于2018/7/10 20:19:00编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/7/10 20:18:00 -- http://www.foxtable.com/mobilehelp/scr/281.htm |
-- 作者:ycli368 -- 发布时间:2018/7/10 20:36:00 -- 蓝版,ReceivedMessage 里面的实现都OK的,就是主程序 因为执行任务 被占用时 ReceivedMessage 这个就不会被执行了,它里面需要异步调用的操作也不会被执行
|
-- 作者:有点蓝 -- 发布时间:2018/7/10 20:39:00 -- 这个没有办法 |
-- 作者:ycli368 -- 发布时间:2018/7/10 20:45:00 -- ReceivedMessage 本身就在线程里就好了 |
-- 作者:ycli368 -- 发布时间:2018/7/10 20:53:00 -- 主进程sleep是不是没用 |
-- 作者:有点蓝 -- 发布时间:2018/7/10 20:57:00 -- 没用。事件本身肯定都是在主线程的,不可能放到主线程外 |