Laden...

[erledigt] Index out of Range wo suchen?

Letzter Beitrag vor 14 Jahren 3 Posts 521 Views
[erledigt] Index out of Range wo suchen?

Guten Morgen zusammen,

ich habe in diesem Code ein Problem

public delegate void AktualisiereZusammenstellungDelegate(List<SuperObjekt> Zusammenstellung);
        public void AktualisiereZusammenstellung(List<SuperObjekt> Zusammenstellung)
        {
            if (InvokeRequired)
            {
                Invoke(new AktualisiereZusammenstellungDelegate(AktualisiereZusammenstellung), Zusammenstellung);
            }
            else
            {
                //GUI Aktion
            }
        }

im Invoke aufruf bekomme ich eine IndexOutOfRange Exception, muss ich die dann in dem Teil der Funktion suchen, die per invoke Aufgerufen wird? also hinter else, bzw. das wo ich dann hin springe? Das Problem taucht nur manchmal auf, aber die Liste bleibt die selbe.

Wie ich eine IndexOutOfRange Exception behandeln muss ist mir klar, nur nicht wo ich suchen muss, wenn der Fehler an dem Invoke aufruf kommt, da macht das Programm mit der Liste doch gar nichts.

Hallo,

mit

Invoke(new AktualisiereZusammenstellungDelegate(AktualisiereZusammenstellung), new object[] {Zusammenstellung});

sollte es gehen.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

Ok, frage hat sich erledigt.

Wie schon fast vermutet leigt das Problem nicht in dem Aufruf des Invoke, sondern im Code, der danach abgearbeitet wird. Offensichtlich springt VS aber nach dem Verlassen des Threads aber nicht in die eigentliche Funktion um den Fehler kund zu tun, sondern meckert an der Stelle wo der Thread verlassen wird. Man muss also händisch gucken wo man überall was macht und dort durchsteppen, warum einfach wenns auch kopliziert geht.
Schade ist nur, dass man so, wenn man das verhalten nicht kennt ewig an der falschen Stelle sucht.