读别人代码发现通过control.invoke来调用方法
_logonForm.Invoke(new Action<string>(_logonForm.SetErrorMessage), "正在连接读卡器");与
_logonForm.SetErrorMessage("正在连接读卡器")的区别是什么?好像不是异步的,而且invoke返回Object,还多一步拆箱装箱呢。
下面是invoke方法的注释:
//
// 摘要:
// 在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托。
//
// 参数:
// method:
// 一个方法委托,它采用的参数的数量和类型与 args 参数中所包含的相同。
//
// args:
// 作为指定方法的参数传递的对象数组。如果此方法没有参数,该参数可以是 null。
//
// 返回结果:
// System.Object,它包含正被调用的委托返回值;如果该委托没有返回值,则为 null。
public object Invoke(Delegate method, params object[] args);
...全文
相关推荐
C#窗体中Invoke和BeginInvoke方法详解
C_窗体中Invoke和BeginInvoke方法详解
Java Method类及invoke方法原理解析
主要介绍了Java Method类及invoke方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
详解Java中Method的Invoke方法
主要介绍了详解Java中Method的Invoke方法,需要的朋友可以参考下
InvocationHandler中invoke()方法的调用问题分析
主要介绍了InvocationHandler中invoke()方法的调用问题分析,具有一定参考价值,需要的朋友可以了解下。
Invoke跨线程调用的代码
忽略跨线程访问的错误 CheckForIllegalCrossThreadCalls = false,但是这个方法很不稳定,使用invoke方法解决跨线程访问的问题,里边有2个例子, 通过自己额外创建的线程改变label控件中的内容从而验证invoke方法


