在我的课上我有一个静态方法
public static void DoWork(int param) ...
我想像这样运行该方法:
Form.BeginInvoke(DoWork, param);
这个操作可行吗?
我尝试使用 MethodInvoker 类...但我不想内联定义方法主体。
有没有通用的委托(delegate)?或者您是否知道在不定义委托(delegate)对象的情况下调用它的任何其他方式(private delegate void DoWorkDelegate(int param)
)?
最佳答案
您应该能够使用:
form.BeginInvoke((Action<int>)DoWork, param);
作为旁注,MethodInvoker
具有特殊处理的优势 - 它可以使用类型化调用而不是反射调用来调用那个方法 - 也许更重要的是提供对参数的提前检查时间; 个人我只会使用:
form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});
关于c# - 使用 BeginInvoke 运行委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022256/