listbox删除对象,调用invoke出现异常NullReferenceException
在对listBoxWell(ListBox)的删除中,由于RemoveAwellInfo从另一个线程调用,采用了invoke方法(具体见listBoxWellsRemove).问题是在语句: listBoxWells.Invoke(d, obj); 时出现NullReferenceException异常,已经确定obj和d是非空的.而且异常出现的不规则,调用几次才出现一次,有时2,3次,有时4,5次.
另外listBoxWell中对象全部是WellInfo.
void RemoveAwellInfo(WellInfo wellInfo)
{
listBoxWellsRemove(wellInfo);
}
delegate void listBoxWellsRemoveCallBack(Object obj);
private void listBoxWellsRemove(Object obj)
{
if (listBoxWells.InvokeRequired)
{
listBoxWellsRemoveCallBack d = new listBoxWellsRemoveCallBack(listBoxWellsRemove);
listBoxWells.Invoke(d, obj); //出现System.NullReferenceException异常!!
}
else
{
listBoxWells.Items.Remove(obj);
}
}
------解决方案--------------------线程同步问题
------解决方案--------------------学习中~~
友情UP
------解决方案--------------------Up