眾所周知,委託的執行過程類似於執行緒的執行(實際上本質就是執行緒),當委託被
invoke
以後,程式會開啟乙個非同步執行緒執行委託,當委託執行完畢時執行緒自動終止。那麼當委託被呼叫以後,如何判斷委託是否已經執行完畢呢?
本文給出兩種方式判斷委託是否執行完畢。
1.根據返回值判斷。
當程式呼叫
begininvoke
啟動委託的時候,
begininvoke
方法會返回乙個
iasyncresult
物件,該物件中有乙個
iscompleted
屬性,當委託正在執行時
iscompleted
屬性為false
,否則該屬性為
true
,程式演示如下:
updatetest update = new updatetest(updatetest);
iasyncresult ar=update.begininvoke(testasync,null);
while (!result.iscompleted)
2.根據**函式判斷
注意到begininvoke
方法中有乙個名為
asynccallback
的引數,顧名思義,該引數提供了乙個**觸發函式,當委託呼叫完畢後,該函式將被觸發。因此可以在該函式中判斷委託是否呼叫完畢,以及給出委託處理結果。程式演示如下:
private
void testasync(iasyncresult ar)
public class1() }
email:[email protected]
判斷檔案結束有兩種方法 EOF和feof
判斷檔案結束有兩種方法 eof和feof 檢視stdio.h可以看到如下定義 由此可以看出,這兩種方式的原理是不同的。有人說eof只能用於文字檔案,其實不然,還要看定義的變數的型別。下面這段程式對文字檔案和二進位制檔案都可以 如果讀到了ff,由於c定義為int型,所以實際上c 0x000000ff,...
判斷檔案結束有兩種方法 EOF和feof
判斷檔案結束有兩種方法 eof和feof 檢視stdio.h可以看到如下定義 cpp view plain copy print?define eof 1 define ioeof 0x0010 define feof stream stream flag ioeo 由此可以看出,這兩種方式的原理是...
判斷檔案結束有兩種方法 EOF和feof
判斷檔案結束有兩種方法 eof和feof 檢視stdio.h可以看到如下定義 由此可以看出,這兩種方式的原理是不同的。有人說eof只能用於文字檔案,其實不然,還要看定義的變數的型別。下面這段程式對文字檔案和二進位制檔案都可以 如果讀到了ff,由於c定義為int型,所以實際上c 0x000000ff,...