Rad*_*u D 3 .net c# delegates winforms
在我的课上,我有一个静态方法
public static void DoWork(int param) ...
Run Code Online (Sandbox Code Playgroud)
我想运行该方法,如:
Form.BeginInvoke(DoWork, param);
Run Code Online (Sandbox Code Playgroud)
这个操作可以吗?
我尝试使用MethodInvoker类...但我不想将方法体内联定义.有没有通用代表?或者您是否知道在没有定义委托对象(private delegate void DoWorkDelegate(int param)
)的情况下调用此方法的任何其他方法?
你应该可以使用:
form.BeginInvoke((Action<int>)DoWork, param);
Run Code Online (Sandbox Code Playgroud)
作为旁注,MethodInvoker
具有特殊处理的优点 - 它可以使用类型调用而不是反射调用来调用那个 - 并且可能更重要的是提前检查args; 我个人只会用:
form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6217 次 |
最近记录: |