vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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
Pedant zu Form.Invoke in WPF 
Autor: Dot
Datum: 05.07.11 16:43

Hi, hab im Internet eine Klasse gefunden die einen "RealTimeTimer" zur Verfügung stellt.

Diese funktioniert aber in Verbindung mit Windows Forms.

Hab aber eine WPF-Anwendung und komme mit der Umstellung der Klasse nicht zurecht.

Kann mir da jemand helfen.

Hier der Code der Klasse:

Public Class RTTimer
 
    Public Event Elapsed(ByVal sender As Object, ByVal e As Results)
    Dim WithEvents worker1 As New System.ComponentModel.BackgroundWorker
    Dim Owner As Form
    Dim EventData As Results
    Dim IsRunning As Boolean
 
    Public Structure Results
        Dim ScannZeit As Long
    End Structure
 
    Private Delegate Sub ScannCompleted_DelegateObject(ByVal Data As Results)
    Private Sub Sub_ScannComplete(ByVal e As Results)
        If Owner.InvokeRequired Then
            Dim dd As New ScannCompleted_DelegateObject(AddressOf _
              Sub_ScannComplete)
            Owner.Invoke(dd, New Object() {e})
        Else
            RaiseEvent Elapsed(Me, e)
        End If
    End Sub
 
    Sub New(ByVal Parent As Form)
        Owner = Parent
    End Sub
 
    Public Sub Start(ByVal interval As Integer)
        If IsRunning = False Then
            worker1.WorkerSupportsCancellation = True
            worker1.RunWorkerAsync(interval)
        End If
    End Sub
 
    Public Sub Cancel()
        If IsRunning = True Then worker1.CancelAsync()
    End Sub
 
    Public Function IsBusy() As Boolean
        IsBusy = worker1.IsBusy
    End Function
 
    Private Sub RunWorker1(ByVal sender As Object, ByVal e As _
      System.ComponentModel.DoWorkEventArgs) Handles worker1.DoWork
        IsRunning = True
        Dim watch As New Stopwatch
        Dim interval As Integer = Convert.ToInt32(e.Argument)
        Dim LastDelta As Integer = 0
        Do
            watch.Reset()
            watch.Start()
            Do
                If worker1.CancellationPending = True Then Exit Sub
                If watch.ElapsedMilliseconds >= interval Then
                    Dim EventData As New RTTimer.Results
                    EventData.ScannZeit = watch.ElapsedMilliseconds
                    Sub_ScannComplete(EventData)
                    Exit Do
                End If
 
            Loop
        Loop
    End Sub
 
 
End Class
und hier die Implementierung:

Public Class Form1
    Dim WithEvents EchtZeitTimer As New RTTimer(Me)
    Dim cnt As Integer = 0
    Dim watch As New Stopwatch
 
    Private Sub EchtZeitTimer_Elapsed(ByVal sender As Object, ByVal e As _
      RTTimer.Results) Handles EchtZeitTimer.Elapsed
        If cnt = 0 Then
            watch.Start()
        End If
        cnt += 1
        Me.Text = Date.Now & ": " & e.ScannZeit.ToString & " - " & cnt
        ListBox1.Items.Add(Date.Now & ": " & e.ScannZeit.ToString & " - " & cnt)
        If cnt >= 100000 Then
            watch.Stop()
            EchtZeitTimer.Cancel()
            MsgBox(watch.ElapsedMilliseconds)
        End If
    End Sub
 
    Private Sub Button_Stop__Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button_Stop.Click
        EchtZeitTimer.Cancel()
    End Sub
 
    Private Sub Button_Start_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button_Start.Click
        EchtZeitTimer.Start(10)
    End Sub
 
 
End Class
 
Es wird im Kontruktor die WinForm übergeben. Dies klappt aber in WPF so nicht.
 
Gruß Dot
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Pedant zu Form.Invoke in WPF2.626Dot05.07.11 16:43
Re: Pedant zu Form.Invoke in WPF1.071Maas05.07.11 17:35
Re: Pedant zu Form.Invoke in WPF1.028Dot05.07.11 20:06
ein Pedant hätte es Pendant geschrieben 956Micke05.07.11 17:47
Re: ein Pedant hätte es Pendant geschrieben1.023ModeratorDaveS05.07.11 17:52
Re: ein Pedant hätte es Pendant geschrieben1.053Micke06.07.11 10:09
Re: Pedant zu Form.Invoke in WPF980Drapondur05.07.11 19:49

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