Control.BeginInvoke 和 Delegate.BeginInvoke 备忘
代碼段1:
?
string str = "0";
??????????? MessageBox.Show(str, "[ 溫馨提示 ]");
??????????? this.BeginInvoke(new Action(() =>
??????????????? {
??????????????????? for (int i = 0; i < 5; i++)
??????????????????? {
??????????????????????? Thread.Sleep(1000);
??????????????????? }
??????????????????? MessageBox.Show(str, "[ 溫馨提示 ]");
??????????????? }));
??????????? str = "1";
?
?
兩者之間的區別:
Control.BeginInvoke:仍然是在UI線程,也就是說,界面仍然會卡住,但是這個函數將會執行結束,也就是說,str = "1";會被執行的。這就是和Control.Invoke 的區別。
Delegate.BeginInvoke:這個就是從ThreadTool 重新創建一個線程了,沒什么好說了。
?
轉載于:https://www.cnblogs.com/sofire/archive/2010/03/30/1700719.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Control.BeginInvoke 和 Delegate.BeginInvoke 备忘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】NIO的定义和原理是什么?
- 下一篇: JNDI学习总结(1)——JNDI入门简