InvokeRequired、如果已经创建控件的句柄,则除了 InvokeRequired 属性以外,控件上还有四个可以从任何线程上安全调用的方法,它们是:Invoke、BeginInvoke、EndInvoke 和 CreateGraphics。在后台线程上创建控件的句柄之前调用 CreateGraphics 可能会导致非法的跨线程调用。对于所有其他方法调用,当从另一个线程进行调用时,应使用这些 Invoke 方法之一。
InvokeRequired:获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,因为调用方位于创建控件所在的线程以外的线程中。
Invoke:在拥有此控件的基础窗口句柄的线程上执行委托。
BeginInvoke:在创建控件的基础句柄所在线程上异步执行委托。
EndInvoke:检索由传递的 IAsyncResult 表示的异步操作的返回值。
CreateGraphics:为控件创建 Graphics。