使用BeginInvoke运行委托方法

时间:2010-10-26 09:21:12

标签: c# .net winforms delegates

在我班上我有一个静态方法

public static void DoWork(int param) ...

我想运行该方法,如:

Form.BeginInvoke(DoWork, param);

此操作可以吗?

我尝试使用MethodInvoker类...但我不想定义方法体内联。 有没有通用代表?或者您是否知道在没有定义委托对象(private delegate void DoWorkDelegate(int param))的情况下调用此方法的任何其他方式?

1 个答案:

答案 0 :(得分:9)

你应该可以使用:

form.BeginInvoke((Action<int>)DoWork, param);

作为旁注,MethodInvoker具有特殊处理的优点 - 它可以使用typed-invoke而不是Reflection-invoke来调用那个 - 并且可能更重要的是提前检查args; 个人我只会使用:

form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});