-Begin-
前言
一朝被蛇咬,十年怕井绳,大家学习过程应该也会有这种感受,就是在某个知识点那里踩坑了,心里就会对这个知识点有所畏惧。其实解决问题最好的办法就是直面问题。
比如很多小伙伴对Invoke就犯怵,不知道什么时候用?为什么要用?怎么用?
希望这篇文章,可以让大家直面Invoke,彻底消除这个畏惧。
什么时候用
首先说下,Invoke的本质只是一个方法,方法一定是要通过对象来调用的。
可能看到这里,有的小伙伴会说了,不对啊,我看到有的代码,前面啥都没有啊,不要急,继续往下看。
一般来说,Invoke其实用法只有两种情况:
-
Control的Invoke
-
Delegate的Invoke
也就是说,Invoke前面要么是一个控件,要么是一个委托对象。
为什么要用
1、Control的Invoke
Control的Invoke一般用于解决跨线程访问的问题,比如你想操作一个按钮button,你就要用button.Invoke,你想操作一个文本label,你就要用label.Invoke,但是大家会发现很麻烦,如果我想既操作button,又操作label,能不能写在一起呢?有没有更简单的方法呢?
其实主窗体是一个Form,Form自然也是继承Control的,所以Form也有Inv