Invoke(Delegate方法,Object [] args)参数计数的问题

时间:2011-02-17 11:43:41

标签: c# multithreading delegates invoke

我有一个像

这样的例子
  

System.Reflection.TargetParameterCountException:参数计数不匹配。      在System.Windows.Forms.Control.MarshaledInvoke(Control caller,Delegate方法,Object [] args,布尔同步)      在System.Windows.Forms.Control.Invoke(Delegate方法,Object [] args)

但是System.Windows.Forms.Control只包含Invoke(Delegate方法, params Object [] args)方法,但不包含Invoke(Delegate方法,Object [] args)。我就像

一样使用它
  

调用(新的SetXDelegate(SetX),value1,   值2)

这是我的问题的原因,我必须使用

  

调用(新的SetXDelegate(SetX),new   object [] {value1,value2})?

更新

请建议最好使用

之类的东西
  

调用((MethodInvoker)委托{   SetX(value1,value2); })

避免这种问题。

感谢。

2 个答案:

答案 0 :(得分:2)

是的,你应该。 It takes an array of objects

修改

问题可能是SetXDelegate没有采用两个参数。

答案 1 :(得分:2)

实际上我认为你抱怨你传递了错误数量的参数供SetX使用。 SetX采用什么参数?