多线程中经常会需要需更新主线程中的UI。
以前传参时,委托参数表都是(string str,int num)这样的,然后在this.invoke传第二个参数时这样:new objects[]{"test",123}。
结果今天脑残了,委托的参数写成:(object[] objs),看上去挺对的啊,跟invoke传参时候长得一模一样,噗。然后就抛出了“参数计数不匹配”这样的异常。
工具/原料
- Visual Studio
- 脑袋
方法/步骤
- 1
解决办法有二:
{一}
实在是想用(object[] objs)这样的参数表,在invoke时,这样传参: new object[] { new object[] { para1,para2 } }(我承认脑袋被驴踢了跳线了才想出来的)
是不是感觉很奇葩?在里面又套了一个new object[]。。。。。
{二}
第一种解决方案显然在可读性上会差一点,传参效率应该也会低一些。
那么第二种就是按照开头将的,老老实实用(string str,int num)这样的参数表。
END
注意事项
- 无
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。