vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Thread und Forms-Aktualisierung 
Autor: Manfred X
Datum: 19.06.14 06:07

Oder so ....
Public Class frmInvokeDemo_
    Inherits System.Windows.Forms.Form
 
    Private Sub InitializeComponent()
        Me.SuspendLayout()
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Name = "frmInvokeDemo_"
        Me.ResumeLayout(False)
    End Sub
 
 
    Private WithEvents button1 As New Button With _
    {.Parent = Me, .Text = "Start"}
 
    Private label_progress As New Label With _
        {.Parent = Me, .Top = 50, .BackColor = Color.White, .Width = 120}
 
    Private Delegate Sub SetTextToLabel_ProgressDelegate _
        (ByVal strTextIN As String)
 
    Private Thread_Download As System.Threading.Thread = Nothing
 
    Private dld As DownloadHelpers
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As  _
      System.EventArgs) Handles button1.Click
 
        dld = New DownloadHelpers
        dld.DisplayForm = Me
 
        Thread_Download = New System.Threading.Thread(AddressOf _
          dld.Thread_Download_Routine)
 
        Thread_Download.Priority = _
            Threading.ThreadPriority.BelowNormal
 
        Thread_Download.Start()
    End Sub
 
 
    Public Sub SetProgressText(ByVal strTextIN As String)
 
        If Me.InvokeRequired Then
            Me.Invoke(New SetTextToLabel_ProgressDelegate(AddressOf _
              SetText), New Object() {strTextIN})
        Else
            SetText(strTextIN)
        End If
    End Sub
 
 
    Private Sub SetText(ByVal strTextIN As String)
        With label_progress
            .Text = strTextIN
            .Refresh()
        End With
    End Sub
 
 
    Private Sub frmInvokeDemo__Load(sender As Object, e As System.EventArgs) _
        Handles Me.Load
 
        SetProgressText("Press Button To Start")
    End Sub
End Class
 
 
 
Class DownloadHelpers
 
    Private _Displayform As frmInvokeDemo_
 
    ''' <summary>Formular zur Anzeige der Informationen</summary>
    Public Property DisplayForm As frmInvokeDemo_
        Set(value As frmInvokeDemo_)
            _Displayform = value
        End Set
        Get
            Return _Displayform
        End Get
    End Property
 
 
    Public Sub Thread_Download_Routine()
 
        'Simulation eines Download-Vorgangs
        Dim zmax, z As Integer, text As String
        zmax = 10
 
        Try
            Do
                Threading.Thread.Sleep(1000)
 
                z += 1
 
                If _Displayform IsNot Nothing Then
                    If z < zmax Then
                        text = "Durchgang: " & z.ToString
                    Else
                        text = "Downloads beendet"
                    End If
                    _Displayform.SetProgressText(text)
                End If
            Loop While z < zmax
        Catch ex As Exception
        End Try
    End Sub
 
End Class
Alternativ könntest Du in der DownLoadHelpers-Klasse ein Benachrichtigungs-
ereignis auslösen, das in der anwendenden Form verarbeitet wird.

Beitrag wurde zuletzt am 19.06.14 um 06:10:35 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Thread und Forms-Aktualisierung1.859sv0001018.06.14 23:10
Re: Thread und Forms-Aktualisierung1.042Kuno6019.06.14 05:57
Re: Thread und Forms-Aktualisierung1.047Manfred X19.06.14 06:07
Re: Thread und Forms-Aktualisierung1.024sv0001019.06.14 08:03

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-2025 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