我已经编写了一个方法来同时在各种控件中执行操作,这是VBNET
中的Invoke部分:
If [Control].InvokeRequired Then
[Control].Invoke(ControlAction, [Control])
Else
' ControlAction.DynamicInvoke([Control])
ControlAction.Method.Invoke(ControlAction, {[Control]})
End If
但我真的不知道我使用DynamicInvoke
还是Method.Invoke
会有什么不同。
也许DynamicInvoke
异步执行......或者是什么?。
我已经介绍了这两种方法,但我仍然感到困惑,而且对我来说还不清楚,我不知道是什么意思" 迟到了 ",对于我(以及GoogleTranslator)来说,这是一个非常奇怪的词,我的英语不好。
动态调用(后期绑定)当前表示的方法 代表
我需要友好解释这一切。
此外,我还要感谢C#
或VBNET
中的代码示例,以展示其中的差异。
答案 0 :(得分:1)
DynamicInvoke不是异步执行的,它是动态的,因为您将其传递给runtime.Invoke中的函数检查(和取消装箱)的参数需要精确类型的参数,但DynamicInvoke需要包含您的参数的对象数组。因此,当您不确切知道参数的类型时,可以使用DynamicInvoke。
以下是关于它的完整(和更好:)解释:Difference Between Invoke and DynamicInvoke