判斷委託操作結束的兩種方法

2021-04-20 01:10:13 字數 833 閱讀 4048

眾所周知,委託的執行過程類似於執行緒的執行(實際上本質就是執行緒),當委託被

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,...