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 '通知系统关闭信道

 

 


本页地址:http://www.foxtable.com/mobilehelp/topics/281.htm