Ho un timer impostato per 10 secondi in una delle mie finestre. E per OnTimedEvent, ho impostato il modulo da smaltire una volta scaduto il tempo. Tuttavia sembra esserci un errore diModulo di eliminazione errore filo incrociato con Timer
InvalidOperationException non gestito dal codice utente.
Operazione cross-thread non valida: controllo 'notificationForm' a cui si accede da un thread diverso dal thread su cui è stato creato.
L'errore era sulla linea
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
il codice per il mio evento timer è
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
this.Dispose();
}
Qualcuno sa come risolvere questo problema? Grazie!
hi. Grazie per la risposta. solo wana sapere, qual è la differenza tra system.windows.form.timer rispetto al normale timer? – Thomas
Timers.Timer è un timer basato su server, motivo per cui si trova su un thread diverso rispetto al modulo. Il timer di Windows gira sullo stesso thread della GUI, che è il motivo per cui un'applicazione Winforms è generalmente il timer più appropriato da utilizzare. Il timer nel ToolBox è Forms.Timer. – LarsTech