我注意到当“给焦点”回到你的主线程时,当从另一个线程调用时,你可以调用“this”或你想要的控件,然后调用。我注意到在控制回来时这无关紧要,所以有人可以解释为什么我会调用主线程的控件吗?是否重要,或者主要线程是否被隐式调用?
会,
this.Invoke(InvokedMethod,args)
与
不同button1.Invoke(InvokedMethod,args)
当button1在我的主表单上时。
答案 0 :(得分:2)
Invoke
方法由Control
类定义。
因此,可以从任何Control
实例访问它们。
当您编写表单时,您的类将继承Form
类,该类(间接)继承Control
。因此,它们也可以通过this
实例访问。
选择哪一个并不重要。
答案 1 :(得分:2)
调用控件使用控件的句柄来确定哪个线程是控件的UI线程,然后使用该线程执行。可以有多个UI线程(UI线程是运行消息循环的任何线程),或者控件可以具有非UI线程的句柄(如果不正确地创建控件)。通常,在主窗体或控件上调用之间没有区别,但在某些情况下它可能很重要。