ciao a tutti sto scrivendo un programma che deve leggere dei dati su una porta e il programma sostanzialmente funziona xkè tramite il metodo Print di System.diagnostic.debug ho constatato che i dati li riceve correttamente. Il mio problema è che questo codice è inserito in un timer che viene eseguito ogni 10 millisecondi e al suo interno c'è l'istruzione application.DoEvents() per non fare bloccare l'applicazione, ma dopo un pò che il programma è in esecuzione e funziona correttamente mi esce il segunte errore :" Eccezione non gestita di tipo 'System.StackOverflowException' in System.Windows.Forms.dll" e l'esecuzione mi si blocca per l'appunto sull'istruzione application.doEvents().
vi posto il codice
ma perchè mi da questo errore ?codice:private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Application.DoEvents(); <== l'errore è qui string command = leggiFlusso.ReadLine(); if (command.Equals("WALK")) { foreach (tassello tas in snake) tas.Location = tas.newPoint; } else { System.Diagnostics.Debug.Print(command); switch (cont) { case 0: p = new Point(); p.X = int.Parse(command); cont++; break; case 1: p.Y = int.Parse(command); cont++; break; case 2: if (int.Parse(command) <= snake.Count - 1) { snake[int.Parse(command)].newPoint = p; //System.Diagnostics.Debug.Print("creo il tassello"); //System.Diagnostics.Debug.Print(command); } else { if (snake.Count <= 2) this.creaTassello(p, snake.Count); else { this.creaTassello(p, 2); snake[snake.Count - 2].Image = img[1]; } } cont = 0; break; } } }
grazie ciao luca

Rispondi quotando