我有一个名为ListaGrupo
的列表,该列表在线程AtenderServidor
中初始化。然后,线程调用函数CrearTablero
,该函数检索列表的内容。当我调用列表的第一个元素时,我没有问题。但是,当调用第二个元素时,我得到了NullReferenceException(调试时,我可以看到第二个元素不为空)。
List<string> ListaGrupo;
private void AtenderServidor()
{
ListaGrupo = new List<string>();
string[] NombresGrupo = trozos[3].Split(',');//trozos[3] contains the strings that have to go into the list
int j = 0;
while (j < 4)//There are only 4 strings
{
if(NombresGrupo[j]!="")
ListaGrupo.Add(NombresGrupo[j]);
j++;
}
this.EmpezarPartida();
}
private void EmpezarPartida()
{
JugadorA_Lbl.Text = ListaGrupo[0]; //This works fine
JugadorB_Lbl.Text = ListaGrupo[1]; //NullReferenceException
}
请注意,上面的代码已简化,我没有包括用于修改标签的委托。我正在调试版本上运行。
在此图像中,您可以更详细地看到异常。
到目前为止,我已经尝试过:
ElementAt()
EmpezarPartida
trozos[3]
MessageBox.Show((ListaGrupo == null).ToString());
关于可能导致异常的原因以及如何解决的任何想法? 预先感谢。