多线程中经常会需要需更新主线程中的UI。

以前传参时,委托参数表都是(string str,int num)这样的,然后在this.invoke传第二个参数时这样:new objects[]{"test",123}。

结果今天脑残了,委托的参数写成:(object[] objs),看上去挺对的啊,跟invoke传参时候长得一模一样,噗。然后就抛出了“参数计数不匹配”这样的异常。

工具/原料

  • Visual Studio
  • 脑袋

方法/步骤

  1. 1

    解决办法有二:

    {一}

    实在是想用(object[] objs)这样的参数表,在invoke时,这样传参: new object[] { new object[] { para1,para2 } }(我承认脑袋被驴踢了跳线了才想出来的)

    是不是感觉很奇葩?在里面又套了一个new object[]。。。。。

    {二}

    第一种解决方案显然在可读性上会差一点,传参效率应该也会低一些。

    那么第二种就是按照开头将的,老老实实用(string str,int num)这样的参数表。

    END

注意事项

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。