vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Threadübergreifende Verwendung von Steuerelementen 
Autor: Jojo
Datum: 01.03.14 12:15

Hallo,

ich habe folgendes Problem:
Ich habe drei Tasks die recht lange laufen und nicht von einander abhängig sind. Um den Überblick zu behalten soll visuell dargestellt werden wie weit die einzelnen Tasks sind, bzw., was die gerade machen (stark vereinfacht).

Es gibt eine Mini Form mit je einer Progressbar und einem Label. Jeder der 3 Task ist fest einer Progressbar und einen Label zugewiesen und soll den "Status" darstellen:

 
'Beispiel Task1:
Dim tasks As New List(Of Task)()
   tasks.Add(Task.Factory.StartNew(Sub()
   For Each Dateiname In My.Computer.FileSystem.GetFiles("c:temp")
      'do something
   Next
End Sub))
'Task2 ...
'Task3 ...
Jetzt soll neu der Dateiname und der Fortschritt dargestellt werden:
 
   For Each Dateiname In My.Computer.FileSystem.GetFiles("c:\temp")
      'Label1.Text = Dateiname
      'do something
      'Progressbar1.value = Progressbar1.value +1 
   Next
Das geht so natürlich nicht und führt zu ungültiger threadübergreifender Vorgang

Ist mir soweit klar. Ich habe es jetzt so versucht:

 
Delegate Sub WriteTextDelegate(ByVal Target As Label, ByVal Text As String)
 
...
   For Each Dateiname In My.Computer.FileSystem.GetFiles("c:\temp")
      'Label1.Text = Dateiname
      Dim Params(1) As Object
      Params(0) = Label1
      Params(1) = Dateiname
      Me.Invoke(New WriteTextDelegate(AddressOf WriteText), Params)
 
      'do something
      'Progressbar1.value = Progressbar1.value +1 
   Next
...
 
Public Sub WriteText(ByVal Target As Label, ByVal Text As String)
    Target.Text = Text
    Target.Refresh()
End Sub
Das funktioniert leider auch nicht: Das Prog tut damit gar nichts.

Ich bin mir nicht sicher warum. Kann mir jemand schrieben wie es hießen muss bzw. erklären wo mein Denkfehler ist?

Joachim

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Threadübergreifende Verwendung von Steuerelementen3.296Jojo01.03.14 12:15
Re: Threadübergreifende Verwendung von Steuerelementen2.194Manfred X01.03.14 12:19
Re: Threadübergreifende Verwendung von Steuerelementen2.211Jojo01.03.14 13:03
Re: Threadübergreifende Verwendung von Steuerelementen2.334Manfred X01.03.14 13:59
Re: Threadübergreifende Verwendung von Steuerelementen2.232Manfred X01.03.14 15:15
Re: Threadübergreifende Verwendung von Steuerelementen2.159Jojo01.03.14 18:58
Re: Threadübergreifende Verwendung von Steuerelementen2.195ModeratorFZelle01.03.14 19:05
Re: Threadübergreifende Verwendung von Steuerelementen2.170Manfred X01.03.14 19:15
Re: Threadübergreifende Verwendung von Steuerelementen2.247Jojo02.03.14 15:31
Re: Threadübergreifende Verwendung von Steuerelementen2.123Manfred X02.03.14 16:26
Re: Threadübergreifende Verwendung von Steuerelementen2.151Jojo02.03.14 18:02
Re: Threadübergreifende Verwendung von Steuerelementen2.185Manfred X02.03.14 18:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel