我在理解BeginInvoke()方法調用委託時異常地調用方法,在完成它的任務之後爲什麼不能從BeginInvoke()方法返回方法的返回值,爲什麼需要EndInvoke ()來查詢BeginInvoke()並從中返回返回值。 我知道這可能是不是一個很好的查詢,但我的困惑是真正的:-)爲什麼我們需要EndInvoke()來在委託中返回異步調用的值?
加法:我可以調用一個方法異步使用DelagateName.BeginInvoke(參數),現在當在委託匹配方法(假設它返回一個值)完成它的工作並返回一個值,爲什麼我需要DelegateName.EndInvoke()來獲取返回的值?爲什麼第一個調用本身不能在方法完成時返回值。
感謝Jon,這真的解決了我的疑問:-),我想通過外行人的語言,BeginInvoke完成了獲取呼叫的工作,並將控制權交給了承諾照顧Job的承諾,因此它不能再做任何返工,因此EndInvoke()將被要求稍後做這項工作......(我猜我在想對!) – mohits00691 2011-12-18 13:00:17
@ mohits00691:不太明白我怎麼表達它,但我認爲你有正確的想法:) – 2011-12-18 13:02:57
謝謝喬恩,幫助我清除了這個疑問,我想我會繼續潛水的時間越來越多,非常感謝大家。 – mohits00691 2011-12-18 13:05:43