Yield的功能将控制权转移给其它图形
对象,包括非PowerBuilder对象。该函数检测
消息队列,如果有
消息,就把消息取出。利用该函数可以在执行耗时较长的操作时把控制权转让给其它应用。
Boolean返回值。如果在
消息队列中提取到了消息,那么函数返回TRUE,否则返回FALSE。用法正常情况下,PowerBuilder应用程序在执行一段代码(比如函数或事件处理程序)的过程中不响应用户的操作。对耗时短暂的
代码段来说,这种处理方式没有什么不妥的地方,但是,如果某个代码段的执行耗时较长,应用程序又希望为用户提供更多的控制权,那么需要在这段代码中插入Yield( )函数,让用户能够进行其它操作,特别在循环执行的代码中更应该如此。应用程序执行Yield( )函数后,如果发现消息队列中存在消息,它将允许对象处理这些消息,处理之后,继续Yield( )函数后面代码的执行。因此,代码中插入Yield( )函数将降低应用程序的运行效率。
---------------------------------------------------------------------------------------------------------------------------------------------------------
在
迭代器块中用于向枚举数对象提供值或发出迭代结束信号。它的形式为下列之一:
yield 语句只能出现在 iterator 块中,该块可用作方法、
运算符或访问器的体。这类方法、运算符或访问器的体受以下约束的控制:
在下面的示例中,
迭代器块(这里是方法 Power(int number,int power) )中使用了 yield 语句。当调用 Power 方法时,它返回一个包含数字幂的可枚举对象。注意 Power 方法的返回类型是 IEnumerable(一种迭代器接口类型)。
---------------------------------------------------------------------------------------------------------------------------------------------------------