MLGetYieldFunction (C 函数)

MLGetYieldFunction 已经被 WSGetYieldFunction 所取代.

MLYieldFunctionObject MLGetYieldFunction(MLINK link)

返回由 link 引用的链接的当前已安装的屈服函数(yield function).

更多信息

  • 某些 MathLink API 调用会被阻塞直到数据可被读取或空间可被写入. 如果在阻塞期间,应用程序需要执行其他有用的处理,应用程序可以安装链接的屈服函数(yield function),当被阻塞时,MathLink 会自动调用屈服函数.
  • 如果 link 没有安装了屈服函数,MLGetYieldFunction() 返回 (MLYieldFunctionObject)0.
  • MLGetYieldFunction() 在 MathLink 标头文件 mathlink.h 中被声明.

范例

基本范例  (1)

#include "mathlink.h"

int AppYieldFunction1 (MLINK mlp, MLYieldParameters yp)
{
    /* ... */
    return 0;
}

int AppYieldFunction2 (MLINK mlp, MLYieldParameters yp)
{
    /* ... */
    return 0;
}


/* check which yield function is installed in a link */

int f(MLINK lp)
{
    MLYieldFunctionObject yf;

    yf = MLGetYieldFunction(lp);
    if(yf == (MLYieldFunctionObject)AppYieldFunction1) return 1;
    else if(yf == (MLYieldFunctionObject)AppYieldFunction2) return 2;
    else if(yf == (MLYieldFunctionObject)0) return 0;

    return -1;    
}