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
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;
}
}
}
ma perchè mi da questo errore ?
grazie ciao luca