這是參考我正在開發的winforms應用程序。我對Invoke有點困惑。爲什麼使用Invoke時,我可以寫內聯代碼?
我知道beginInvoke是異步的,調用是同步的。 beginInvoke是有意義的,如果你想讓一段代碼工作異步並讓UI響應,但爲什麼我要在進程同步的時候使用Invoke?我可以通過在線編寫代碼來獲得相同的結果嗎?
這是參考我正在開發的winforms應用程序。我對Invoke有點困惑。爲什麼使用Invoke時,我可以寫內聯代碼?
我知道beginInvoke是異步的,調用是同步的。 beginInvoke是有意義的,如果你想讓一段代碼工作異步並讓UI響應,但爲什麼我要在進程同步的時候使用Invoke?我可以通過在線編寫代碼來獲得相同的結果嗎?
不,不完全是。 Invoke
也確保代碼在的正確線程中運行。
它的主要用途是從後臺線程調用Invoke並讓代碼在UI線程上運行。
感謝BradleyDotNET。 – user4032346 2014-09-30 01:39:59
只有您的代碼已經在UI線程上運行。如果它運行在其他線程上,那麼'Invoke'就是將這個調用集中到UI線程上的一種方式,這非常有用。 – Cameron 2014-09-29 21:06:48
調用編組調用正確的線程,但阻止調用一個(對於您的後臺線程)。 – 2014-09-29 21:37:08