Quando tu chiami DoEvents crei un nuovo message loop che recapita tutti i messaggi delle finestre del thread corrente alle appropriate window procedure; tuttavia tra questi messaggi potrebbe esserci anche il WM_TIMER (quello che il .NET Framework traduce in un evento Timer.Elapsed), dal momento che hai impostato un intervallo di tempo piuttosto piccolo, per cui la DoEvents richiamerà timer_Elapsed, il quale a sua volta richiamerà la DoEvents, che probabilmente richiamerà timer_Elapsed e così via fino a quando lo stack non si esaurisce (guardando lo stack trace al momento dell'errore potrai avere conferma della mia spiegazione).Originariamente inviato da snake88m
grazie MItaly ho provato e il tuo metodo funziona. ... anche se non ho ben capito perchè ...![]()
Per caso anche riceviDati viene richiamato da un evento del form?codice:private void riceviDati() ...
Non ti conviene eseguire la ricezione dei dati in un thread separato lasciando stare la DoEvents?