Csharp/C#教程:参数计数与Invoke不匹配?分享


参数计数与Invoke不匹配?

下面的代码块导致错误:TargetParameterCountException未被用户代码处理。 参数计数不匹配。

public void AddListViewItem(string[] Data) { if (InvokeRequired) { Invoke(new Action(AddListViewItem), Data); } else { ListViewData.Items.Add(Data[0]).SubItems.AddRange ( new string[] { Data[1], Data[2], Data[3], } ); } } 

有任何想法吗?

由于数组协方差而发生错误; 字符串数组可分配给object[] 。 这会导致Invoke方法将string数组的每个元素视为应该是AddListViewItem方法的参数。

这是一个修复:

 Invoke(new Action(AddListViewItem), new object[] {Data}); 

(要么)

 Invoke(new Action(AddListViewItem), (object)Data); 

这使得Invoke目标方法采用单个参数变得非常清楚。

更新资料:

如果您使用的是Windows Server 2008 R2 ,请查看适用于基于Windows Server 2008 R2 x64的系统KB2858725的 .Net Framework 4.5.1Windows Update 。 对我来说,安装此更新后修复了此问题。

上述就是C#学习教程:参数计数与Invoke不匹配?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1009081.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐