Bueno gente... no podía aguantarme más y lo probé...
Por desgracia, siento comunicaros que el error persiste, además de que deshabilitando el CheckForIllegalCrossThreadCalls también falla. Por ahora lo tengo a true, e intenté ejecutar el siguiente código:
Código:
public delegate void LlenarLista();
LlenarLista delegado;
public delegate void AddListItemCallback(string text);
private AddListItemCallback addListItemCallback;
private void button2_Click(object sender, EventArgs e)
{
addListItemCallback = new AddListItemCallback(this.AddListItem);
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 (this.InvokeRequired)
lsLista.Invoke(addListItemCallback, new object[] { "Elemento " + i.ToString() });
else
lsLista.Items.Add("Elemento " + i.ToString());
}
}
private void AddListItem(string text)
{
this.lsLista.Items.Add(text);
}
private void ResultadoOperacion(IAsyncResult ar)
{
delegado.EndInvoke(ar);
}
Despues también intentaré pelearme para que no sea necesario el CheckForIllegalCrossThreadCalls, haber si conseguimos uasr controles de forma background y "Legalmente".
Un abrazo foreros.