QQServer与异步编程
QQServer的负载远低于HttpServer,一般并无采用异步编程的必要,但我们依然为QQServer提供了异步编程的功能。
QQServer有三个事件和HttpRequest一样,在调用异步函数之前,需要将e参数的AsyncExcute属性设置为True,保持信道不被关闭;在异步函数执行完毕之后,将e参数的Handled属性设置为True,通知系统关闭信道。
这三个事件别为:
UserLogging(e参数类型为Server_UserLoggingEventArgs)
ReceivedMessage(e参数类型为Server_MessageEventargs)
UserChangePassword(e参数类型为Server_ChangeUserPasswordEventArgs)
提示:如果ReceivedMessage和UserChangePassword不需要通过e参数的ReturnValue属性返回信息,则无需保持信道。
以UserLogging事件为例,异步编程的时候,HttpRequest事件代码结构为:
e.AsyncExecute
= True
'通知系统不要关闭信道
Functions.AsyncExecute("函数名",
e)
'异步调用函数处理登录请求
异步函数代码结构为:
Dim
e As
Server_UserLoggingEventArgs
=
args(0)
'处理登录请求
'...
e.Handled
= True
'通知系统关闭信道