2018-08-23 【c#】 Delegate的Invoke BeginInvolke

C#Delegate.Invoke、Delegate.BeginInvoke And Control.Invoke、Control.BeginInvoke

image.png

(这个用不到)
image.png

Invoke 和 BeginInvoke 的真正涵义
在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,具体的原因可以在看完我的这篇之后看看这篇:在多线程中如何调用Winform,如果你是大牛的话就不要看我这篇了,直接看那篇吧,反正那篇文章我没怎么看懂。
Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。
正确的做法是将工作线程(有可能是主线程)中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用,两者的区别就是一个导致工作线程等待,而另外一个则不会。

你可能感兴趣的:(2018-08-23 【c#】 Delegate的Invoke BeginInvolke)