Buenas tardes gente...
Estoy intentando cargar un ListBox mediante programación asíncrona (Se que puedo hacerlo através de una Thread) y me va todo de lujo, pero cuando acabo justo de cargar el ListBox, me sale el siguiente error:
"Referencia a objeto no establecida como instancia de un objeto."
Aun que ahora no aparezcan, he probado a poner Try en cada parte del código en (button2_Click, LlenarElementosLista y en ResultadoOperacion) y en ninguna de ellas ha entrado en la excepción.
Este es el código:
Código:
public delegate void LlenarLista();
LlenarLista delegado;
private void button2_Click(object sender, EventArgs e)
{
delegado = new LlenarLista(LlenarElementosLista);
IAsyncResult iaResultado = delegado.BeginInvoke(new AsyncCallback(ResultadoOperacion), null);
}
[OneWay]
private void LlenarElementosLista()
{
lsLista.Items.Clear();
for (Int64 i = 0; i < 3; i++){
if (i == 99999)
lsLista.Items.Add("Elemento " + i.ToString());
else
lsLista.Items.Add("Elemento " + i.ToString());
}
}
private void ResultadoOperacion(IAsyncResult ar)
{
delegado.EndInvoke(ar);
}
También decirles que en el Inicio del formulario tengo puesta la etiqueta CheckForIllegalCrossThreadCalls = false; ya que sino, me fallaría nada más empezar el método. Pero... no entiendo y no sé por que me está fallando al finalizar, por favor, si alguien tiene experiencia en temas de Asincronía le agradecería enormemente que me saque de este bache.