vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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
... Code ... 
Autor: Schü
Datum: 06.08.10 15:52

'Klasse kapselt einen Prozess zur Ausführung in einem seperaten Thread
        Protected Class SingleTaskProcessor
            Inherits ThreadWrapperBase
 
            Private Delegate Sub DoTaskDelegate(ByVal Obj As T)
            Private Delegate Sub WorkCompletedDelegate(ByVal Sender As _
              SingleTaskProcessor, ByVal Obj As T)
            Private Delegate Sub StartTaskDelegate(ByVal Sender As _
            SingleTaskProcessor, ByVal Obj As T, ByRef Cancel As Boolean)
            Private Delegate Sub AbbortTaskDelegate(ByVal Sender As _
            SingleTaskProcessor, ByVal Obj As T)
 
            'das zu bearbeitende Objekt
            Private mObj As T
            Private mParent As MultiTaskProcessor(Of T)
 
            Public Sub New(ByVal Parent As MultiTaskProcessor(Of T), ByVal Obj _
              As T, ByVal ThreadName As String)
                MyBase.New(ThreadName)
                mParent = Parent
                mObj = Obj
            End Sub
            Public Sub New(ByVal Parent As MultiTaskProcessor(Of T), ByVal Obj _
              As T, ByVal IsBackground As Boolean)
                MyBase.New(IsBackground)
                mParent = Parent
                mObj = Obj
            End Sub
            Public Sub New(ByVal Parent As MultiTaskProcessor(Of T), ByVal Obj _
              As T, ByVal IsBackground As Boolean, ByVal ThreadName As String)
                MyBase.New(IsBackground, ThreadName)
                mParent = Parent
                mObj = Obj
            End Sub
            Public Sub New(ByVal Parent As MultiTaskProcessor(Of T))
                MyBase.New()
                mParent = Parent
            End Sub
            Public Sub New(ByVal Parent As MultiTaskProcessor(Of T), ByVal Obj _
              As T)
                MyBase.New()
                mParent = Parent
                mObj = Obj
            End Sub
 
            Protected Overrides Sub DoTask()
                If mDebugMode Then Debug.WriteLine(mThreadName & "::" & "Begin" & _
                  "DoTask")
                If mParent Is Nothing Then Exit Sub
                Dim Del As New DoTaskDelegate(AddressOf mParent.DoWork)
                Del.Invoke(mObj)
            End Sub
            Protected Overrides Sub WorkCompleted()
                If mDebugMode Then Debug.WriteLine(mThreadName & "::" & "Work" & _
                  "Complete!")
                If mParent Is Nothing Then Exit Sub
                Dim Del As New WorkCompletedDelegate(AddressOf _
                  mParent.m_SingleTaskCompleted)
                Del.Invoke(Me, mObj)
            End Sub
            Protected Overrides Sub TaskAbborted()
                If mDebugMode Then Debug.WriteLine(mThreadName & "::" & _
                  "Abborted")
                If mParent Is Nothing Then Exit Sub
                Dim Del As New AbbortTaskDelegate(AddressOf _
                  mParent.m_SingleTaskAbborted)
                Del.Invoke(Me, mObj)
            End Sub
            Protected Overloads Overrides Sub TaskStart(ByRef Cancel As Boolean)
                If mDebugMode Then Debug.WriteLine(mThreadName & "::" & _
                  "Started")
                If mParent Is Nothing Then
                    Cancel = True
                    Exit Sub
                End If
                Dim Del As New StartTaskDelegate(AddressOf _
                  mParent.m_SingleTaskStart)
                Del.Invoke(Me, mObj, Cancel)
            End Sub
            Protected Overrides Sub TaskAbbortRequest(ByRef Cancel As Boolean)
                If mDebugMode Then Debug.WriteLine(mThreadName & "::" & "Abbort" & _
                  "Requested")
            End Sub
        End Class
 
        'Klasse für die Events
        Public Class MTP_ThreadEventArgs
            Inherits EventArgs
 
            Public Tag As Object
            Public Obj As T
            Public Cancel As Boolean = False
 
            Public Sub New(ByVal Obj As T, ByVal Tag As Object, ByVal Cancel As _
              Boolean)
                Me.Tag = Tag
                Me.Obj = Obj
                Me.Cancel = Cancel
            End Sub
        End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Klasse für MultiThreading2.503Schü06.08.10 14:16
Re: Klasse für MultiThreading1.739Schü06.08.10 14:19
Re: Klasse für MultiThreading1.789ModeratorDaveS06.08.10 14:50
Re: Klasse für MultiThreading2.043Schü06.08.10 15:34
... Code ...1.889Schü06.08.10 15:48
... Code ...1.761Schü06.08.10 15:49
... Code ...1.872Schü06.08.10 15:51
... Code ...1.735Schü06.08.10 15:51
... Code ...1.809Schü06.08.10 15:52
... Code ...1.852Schü06.08.10 15:52
... Code ...1.762Schü06.08.10 15:53
... Code ...1.833Schü06.08.10 15:54
... Code ...1.698Schü06.08.10 15:56
... Code ... Ende1.783Schü06.08.10 15:57
Re: Klasse für MultiThreading1.755ModeratorRalfE06.08.10 19:17
Re: Klasse für MultiThreading1.730Schü07.08.10 15:35
Re: Klasse für MultiThreading1.735ModeratorDaveS07.08.10 16:04
Re: Klasse für MultiThreading1.802ModeratorRalfE07.08.10 16:33
Re: Klasse für MultiThreading1.729Schü07.08.10 17:17
Link zum Projekt2.003Schü09.08.10 11:30
1. Korrektur1.712Schü10.08.10 07:55
2. Korrektur1.729Schü10.08.10 08:26
3. Korrektur1.721Schü11.08.10 09: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