public void updateBar3(object sender, TimerNewDataEventArgs e) //Aufruf durch anderen Thread { int zusatzdaten = e.timeMs; if (progressBar1.Maximum > progressBar1.Value) { progressBar1.Value += 1; } }
public void updateBar4(object sender, TimerNewDataEventArgs e) //Aufruf durch anderen Thread { int zusatzdaten = e.timeMs; if (InvokeRequired) //aktueller Thread GUI-Thread? (Invoke = "anrufen") { if (IsHandleCreated && !IsDisposed) { //soll Absturz beim Beenden verhindern //Invoke durch BeginInvoke ersetzt (BeginInvoke blockiert nicht) BeginInvoke(new EventHandler <TimerNewDataEventArgs>(updateBar4), sender, e); //ruf dich selbst ggf. nochmal im richtigen Thread auf } return; } if (progressBar1.Maximum > progressBar1.Value) { progressBar1.Value += 1; } }