19. März 200521 j Hallo Habe in meinem Prog eine Prozedur, die aufgrund einiger eingebauter Thread.Sleep() länger zum abarbeiten braucht. Nun hab ich mir überlegt, dass ich dem Usr die Wartezeit mit einem Textfeld, das die Farbe ändert verschönere. Die Prozedur für die Blinkanimation hab ich schon geschrieben. Sie ist aber auch Timerbasierend. Ich möchte gerne die Blinkprozedur starten, wenn die lange Prozdur startet und sobald sie abgearbeitet ist, auch die BlinkAnimation stoppen. Hat dazu jemand einen Vorschlag? Danke vorab mirmi
19. März 200521 j Hi nochmal Danke für die Antwort. Leider kann ich Deinen Tip aus mangelndem VB KnowHow nicht ordentlich umsetzen. Ich habs jetzt mal so versucht: zuerst hab ich diese Prozedur erstellt: Sub subBlinkTxtProd() Try Dim intCtr As Integer For intCtr = 0 To 10 threadBlink.Sleep(500) If txtProdWhite.Visible = True Then txtProdWhite.Visible = False txtProdGreen.Visible = True Else txtProdWhite.Visible = True txtProdGreen.Visible = False End If Application.DoEvents() Next intCtr txtProdWhite.Visible = False txtProdGreen.Visible = False Catch ex As ThreadAbortException txtProdWhite.Visible = False txtProdGreen.Visible = False Return End Try End Sub Diese wird in meiner "langen" Prozedur aufgerufen und auch wieder gestoppt: Private Sub cmdPortOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPortOpen.Click threadBlink.Start() 'Hier steht der ganze Code fürs abschicken der ComPort Befehle. Hier sind auch die Thread.Sleep() eingebaut. threadBlink.Abort() End Sub Leider wird die Blink Prozedur irgendwie nicht richtig abgearbeitet bzw. gestartet. Was mach ich denn hier falsch? Ich hab schon rausgefunden, dass der Thread mit threadBlink.Abort() nicht gestoppt wird. Denn beim nächsten Versuch heißt es, "Thread noch nicht angehalten", oder so ähnlich. Danke vorab für die Tips... mirmi
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.