c#- Invoke()-Methode gibt eine ArgumentException

july

Erfahrenes Mitglied
Hallo zusammen,
ich hab folgendes Problem. Ich arbeite auf einem Board, darum kann ich keinen Backgroudworker benutzen und verwende statt dessen Threads, also insgesamt hab ich 2 Threads: GUI- und ein Server-Thread, der Meldungen empfängt und an die GUI sie weitergeben soll, damit sie dargestellt werden sollen.
Ich hab's folgendermaßen realisiert:
Code:
 private String server;

  public Client(Form1 myForm1, String serv)
  {
    myForm = myForm1;
    server = serv;
   }
   delegate void SetTextCallback(string text, Int16 position);
   public void connection()
   {....
     try
      {
       //Connection succeed
       //got message
       SetText(data[0], Convert.ToInt16(data[1]));
       ...
       }catch (ArgumentException ae)
            {
                ...
            }
            catch (SocketException se)
            {
               ....
            }
    }
    private void SetText(string text, int position)
    {
     if (myForm.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(
                                        this.myForm.SetTextToListBox1);
                    myForm.Invoke(d, new object[] { text, position });
                }
    }

Auf der GUI-Seite gibt's entsprechend eine Methode SetTextToListBox1.
Leider wirft mir die SetText()-Methode schon eine ArgumentException.
Habt ihr vielleicht eine Idee woran es liegen könnte?

Grüße July
 
Hi

vielleicht weil data[0] oder data[1] ungültige Werte liefert?
Der Informationsgehalt deiner Fehlerbeschreibung ist etwas mau! Ein paar mehr Infos solltest du schon liefern
 
Also die Inhalte aus data[] stimmen 100%. Beim debuggen kann ich nur sehen, dass die Exception kommt direkt nach SetText()
 
Step doch mal in die Methode! ;) + BreakPoint in SetTextToListBox1 und schauen, was da passiert
Und was genau angemeckert wird, hast du immer noch nicht gepostet! Für gewöhnlich wird der Exception die Info mit gegeben, welcher Parameter nicht wie erwartet ist.
 
Das war das Problem, dass alle Parameter absolut richtig waren. Der Fehler lag bevor. Ich hab stream.read solange gemacht bis der Wert vom stream.Read = 0 war.
 
Zurück