在我的类中,我有一个静态方法。
public static void DoWork(int param) ...
我想执行这个方法,像这样:
Form.BeginInvoke(DoWork, param);
这个操作能实现吗?
我尝试使用MethodInvoker类...但我不想内联定义方法体。
是否有通用的委托?或者您知道其他调用此操作的方式而不需要定义一个委托对象(private delegate void DoWorkDelegate(int param)
)?
你应该能够使用:
form.BeginInvoke((Action<int>)DoWork, param);
顺便提一下,MethodInvoker
的优势在于特殊处理 - 它可以使用类型调用而不是反射调用来调用一个方法 - 并且更重要的是提前检查参数; 个人而言 我只会使用:
form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});