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 - Fortgeschrittene
Re: Benachrichtigung an eigenständigen Threads 
Autor: Melkor
Datum: 17.08.07 18:32

Nochmal ohne unnötigen Code und mit Deklarationen und etwas modernisiert (und formatiert!)
    Public Class WorkItem
        ' Die Message
    End Class
 
    Private __closeDown As Boolean
    Private __workQueue As New Queue(Of WorkItem)
    Private __workEvent As New System.Threading.AutoResetEvent(False)
 
    Private Function getWorkItem() As WorkItem
        Dim nextWi As WorkItem = Nothing
        Do
            SyncLock __workQueue
                If __workQueue.Count > 0 Then
                    nextWi = __workQueue.Dequeue()
                End If
            End SyncLock
            If nextWi Is Nothing Then
                __workEvent.WaitOne()
            End If
        Loop While nextWi Is Nothing And Not __closeDown
        Return nextWi
    End Function 'getWorkItem() 
 
    Public Sub PostWorkItem(ByVal wi As WorkItem)
        SyncLock __workQueue
            __workQueue.Enqueue(wi)
            If __workQueue.Count = 1 Then
                ' Post (maybe) waiting work thread 
                __workEvent.Set()
            End If
        End SyncLock
    End Sub 'PostWorkItem()
Zur Erklärung, ein Thread bekommt eine Nachricht mit getWorkItem(), und wenn keine vorhanden ist wartet der Thraed (bis eine Nachricht kommt oder __closeDown gesetzt ist, wobei __workEvent.Set() auch aufgerufen werden muss).

Andere Threads schicken Nachrichten an den Thread mit PostWorkItem().

Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Benachrichtigung an eigenständigen Threads825Messiahs16.08.07 19:05
Re: Benachrichtigung an eigenständigen Threads564Messiahs16.08.07 21:46
Re: Benachrichtigung an eigenständigen Threads554Melkor16.08.07 21:55
Re: Benachrichtigung an eigenständigen Threads559Messiahs17.08.07 17:31
Re: Benachrichtigung an eigenständigen Threads1.067Melkor17.08.07 18:32
Re: Benachrichtigung an eigenständigen Threads589ModeratorDaveS17.08.07 22:21
Re: Benachrichtigung an eigenständigen Threads556Messiahs17.08.07 23:55

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