参数计数与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.1的Windows Update 。 对我来说,安装此更新后修复了此问题。
上述就是C#学习教程:参数计数与Invoke不匹配?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1009081.html