c# - 使用 BeginInvoke 运行委托(delegate)方法

标签 c# .net winforms delegates

在我的课上我有一个静态方法

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/

相关文章:

c# - 在 ToolStripMenuItem 中捕获 mouseClick 和 KeyDown 事件

.net - 如何在 .NET 中播放非默认系统声音

sql - MS Access 查询中的语法错误?

wpf - WPF是否支持本地读取/写入WMF/EMF文件?

c# - 如何将 Migradoc PDF Sharp 中的表格移动到新页面

c# - ASP.NET session 大小限制

c# - 覆盖 WinForms 中的选项卡行为

c# - SL 5 脱离浏览器,提升信任度 - 从任何本地目录显示 PNG

.net - 文件显示在 Visual Studio 的解决方案资源管理器中,并带有一个快捷方式图标。这意味着什么?

c# - 确定哪个控件最接近鼠标指针