WSWaitForLinkActivityWithCallback (C 函数)
int WSWaitForLinkActivityWithCallback(WSLINK l, WSLinkWaitCallBackObject callback)
直到由 l 指定的 WSTP 连接有数据可读取时才会返回,但是会周期性地回调到传递为 callback 的函数.
更多信息
- 在一个需要等待数据的后台线程上使用 WSWaitForLinkActivityWithCallback(),这样就不会组织用户界面或应用的主线程.
- 若需要等待在可登陆的链接上的链接活动,可使用 WSWaitForLinkActivityWithCallback() (或相关函数 WSWaitForLinkActivity()) .
- 若发生错误,则 WSWaitForLinkActivityWithCallback() 返回 WSWAITERROR;若函数成功,则返回 WSWAITSUCCESS.
- WSLinkWaitCallBackObject 是一个以 int function(WSLINK, void *) 为形式的函数的指针. 第二个参数留待以后使用. 若函数返回 1,则 WSWaitForLinkActivityWithCallback() 会返回 WSWAITCALLBACKABORTED.
- WSTP 的标头文件 wstp.h 已对 MWaitForLinkActivityWithCallback() 作出声明.
范例
基本范例 (1)
#include "wstp.h"
/* A function for WSTP to call back to while waiting */
int WaitFunction(WSLINK l, void *future)
{
/* By default do not back out of
WSWaitForLinkActivityWithCallback(). */
return 0;
}
/* A function for waiting for link activity */
void f(WSLINK l)
{
switch(WSWaitForLinkActivityWithCallBack(l, WaitFunction))
{
case WSWAITERROR:
/* Handle the error */
break;
case WSWAITSUCCESS:
/* Now read incoming data */
break;
case WSWAITCALLBACKABORTED:
default:
/* WaitFunction decided to abort the wait. */
}
}