Huhu,
ich komme aus der C++ Ecke und hab früher mal ein paar Sachen mit dem Borland C++ Builder gemacht und bin gerade dabei mich aus beruflichen Gründen (kleine Testprogramme) in Visual C# ein zu arbeiten.
Also mein aktuelles Problem dreht sich um die Timer. Folgender Code bringt zwar die geforderte Funktion aber danach kommt ein Hinweis auf eine Exception.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| namespace WindowsFormsApplication1 { public partial class Form1 : Form { System.Timers.Timer aTimer = new System.Timers.Timer();
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { aTimer.Interval = 500; aTimer.Enabled = true; aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); } private void OnTimedEvent (object source, ElapsedEventArgs e) { this.textBox1.BackColor = System.Drawing.Color.Red; } |
Als Fehlermeldung erscheint nach der Ausführung:
InvaliOperationException. Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement textBox1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.
Kann mir jemand helfen den Code zu optimieren um die Exception zu vermeiden?
Danke.
Moderiert von
Th69: Quote- durch C#-Tags ersetzt