以文本方式查看主题

-  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
--  
没用。事件本身肯定都是在主线程的,不可能放到主线程外