共找到3條詞條名為Yield的結果 展開

Yield

編程術語

Yield的功能將控制權轉移給其它圖形對象,包括非PowerBuilder對象。該函數檢測消息隊列,如果有消息,就把消息取出。利用該函數可以在執行耗時較長的操作時把控制權轉讓給其它應用。

語法


Yield()
Boolean返回值。如果在消息隊列中提取到了消息,那麼函數返回TRUE,否則返回FALSE。用法正常情況下,PowerBuilder應用程序在執行一段代碼(比如函數或事件處理程序)的過程中不響應用戶的操作。對耗時短暫的代碼段來說,這種處理方式沒有什麼不妥的地方,但是,如果某個代碼段的執行耗時較長,應用程序又希望為用戶提供更多的控制權,那麼需要在這段代碼中插入Yield()函數,讓用戶能夠進行其它操作,特別在循環執行的代碼中更應該如此。應用程序執行Yield()函數后,如果發現消息隊列中存在消息,它將允許對象處理這些消息,處理之後,繼續Yield()函數後面代碼的執行。因此,代碼中插入Yield()函數將降低應用程序的運行效率。
---------------------------------------------------------------------------------------------------------------------------------------------------------
yield(C#參考)
在迭代器塊中用於向枚舉數對象提供值或發出迭代結束信號。它的形式為下列之一:
yieldreturn;
yieldbreak;
備註:
計算表達式並以枚舉數對象值的形式返回;expression必須可以隱式轉換為迭代器的yield類型。
yield語句只能出現在iterator塊中,該塊可用作方法、運算符或訪問器的體。這類方法、運算符或訪問器的體受以下約束的控制:
不允許不安全塊。
方法、運算符或訪問器的參數不能是ref或out。
yield語句不能出現在匿名方法中。
當和expression一起使用時,yieldreturn語句不能出現在catch塊中或含有一個或多個catch子句的try塊中。
在下面的示例中,迭代器塊(這裡是方法Power(intnumber,intpower))中使用了yield語句。當調用Power方法時,它返回一個包含數字冪的可枚舉對象。注意Power方法的返回類型是IEnumerable(一種迭代器介面類型)。

例子


C#
publicclassList
{
//usingSystem.Collections;
publicstaticIEnumerablePower(intnumber,intexponent)
{
intcounter=0;
intresult=1;
while(counter++
{
result=result*number;
yieldreturnresult;
}
}
staticvoidMain()
{
//Displaypowersof2uptotheexponent8:
foreach(intiinList.Power(2,8))
{
Console.Write("{0}",i);
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
JAVA例子
classOutputClassimplementsRunnable{
Stringname;
OutputClass(Strings){
name=s;
}
publicvoidrun(){
for(inti=0;i<3;i++){
System.out.println(name);
Thread.yield();
}
}
}
publicclassRunThreads{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
OutputClassout1=newOutputClass("Thread1");
OutputClassout2=newOutputClass("Thread2");
ThreadT1=newThread(out1);
ThreadT2=newThread(out2);
T1.start();
T2.start();
}
}
/×說明:這裡創建了2個線程,運行結果如下:
Thread1
Thread2
Thread1
Thread2
Thread1
Thread2
×/
這裡不一定是交替運行的,有各種可能順序,但是他們一定都會執行。
  • 目錄