使用Invoke进行父窗体或目标控件之间有什么区别吗?

Hom*_*mam 4 c# multithreading invoke winforms

如果我想从另一个线程处理控件,那么对于控件和父窗体的check InvokeRequired和call Invoke方法有什么区别?

if (theForm.InvokeRequired)
    Invoke(...)
Run Code Online (Sandbox Code Playgroud)

要么

if (myControl.InvokeRequired)
   myControl.Invoke(...)
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

Invoke方法搜索控件的父链,直到找到具有窗口句柄的控件或窗体(如果当前控件的基础窗口句柄尚不存在).

Tim*_*son 7

这两个具有相同的效果.您可以假设表单和控件是在同一个线程上创建的.