在我班上我有一个静态方法
public static void DoWork(int param) ...
我想运行该方法,如:
Form.BeginInvoke(DoWork, param);
此操作可以吗?
我尝试使用MethodInvoker类...但我不想定义方法体内联。
有没有通用代表?或者您是否知道在没有定义委托对象(private delegate void DoWorkDelegate(int param)
)的情况下调用此方法的任何其他方式?
答案 0 :(得分:9)
你应该可以使用:
form.BeginInvoke((Action<int>)DoWork, param);
作为旁注,MethodInvoker
具有特殊处理的优点 - 它可以使用typed-invoke而不是Reflection-invoke来调用那个 - 并且可能更重要的是提前检查args; 个人我只会使用:
form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});