原文:无法将匿名方法转换为System.Delegate

在WinForm中,不允许非UI线程访问UI,如果非UI线程需要跨线程调用UI控件,通常的解决办法是使用Control类中的Invoke方法,传递给该方法一个委托和委托调用的参数列表 params object args ,任何委托类型都可以,通过委托来访问UI。其内部是,非UI线程把委托送到UI线程中,让UI线程去调用这个委托。 一般一个方法的参数是委托类型,如果使用委托实例,那就还需要额外定义 ...

2016-10-20 22:12 0 1738 推荐指数:

查看详情

C#--无法将lambda表达式转换为类型‘Delegate’,原因是它不是委托类型

报错如下: 主要是为了在子线程中更新UI线程 对于Control.Invoke()来说,任何的代理类型都是可接受的,也就是说ThreadStart和MethodInvoker都是可以接受的类型。这样编译器反而不知道应该用哪个代理去匹配匿名函数了,导致了编译错误的发生。知道了原因 ...

Sat Jan 02 21:28:00 CST 2021 0 891
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM