vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 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: stetig steigende Speicherauslastung 
Autor: DomiS
Datum: 13.03.06 11:06

Erstmal danke für die vielen Tips.

So umständlich wie mit der großen Datenbank ist das ganze bei mir nicht.

In meiner Test-Klasse habe ich jetzt einfach einen Timer eingebaut von 5s. Da so ein DateReceivedEvent ca. 10x pro Sekunde auftritt wurden bei meiner ursprünglichen Lösungen wirklich immer mehr Threads im Speicher gehalten und nichtmehr freigegeben.

Meine Testklasse schaut im Moment so aus, und das ganze scheint zu funktionieren:
In einer Main wird natürlich ein Instanz von RFID inititalisiert und die Methode Start ausgeführt.


Imports System.IO.Ports
Imports System.Timers
 
'/ Klasse RFID
Public Class RFID
 
    '/ globale Variablen
    Private WithEvents _Port As SerialPort
    Private zeitrumm As Boolean = False
 
    '/ Konstruktor
    Public Sub New(ByVal comport As String)
 
        '/ COM-Port oeffnen, falls Aufruf Sinn macht!
        If comport = "COM1" Or comport = "COM2" Then
            _Port = New SerialPort(comport, 9600, Parity.None, 8, StopBits.One)
        End If
 
    End Sub
 
    '/ Methode Start
    Public Sub Start()
 
        '/ 5s-Timer einrichten
        Dim fsTimer As New Timer()
        fsTimer.Interval = 5000
        fsTimer.Enabled = True
        AddHandler fsTimer.Elapsed, AddressOf zeitrummwahr
 
        '/ COM-Port oeffnen
        _Port.Open()
 
    End Sub
 
    '/ Methode RFID_Received
    Protected Sub RFID_Received(ByVal sender As Object, ByVal e As _
      SerialDataReceivedEventArgs) Handles _Port.DataReceived
 
        ' irgendetwas tun, sobald der der Event eintritt, dass Daten am COM1 
        ' anstehen!
        If zeitrumm Then
            Console.WriteLine("In RFID_Received() und Daten werden bearbeitet")
            zeitrumm = False
        End If
 
        ''/ Garbage Collector ausführen usw. --> nützt alles nix!
        '_Port.DiscardInBuffer()
        'e = Nothing
        'sender = Nothing
        'GC.SuppressFinalize(Me)
        'GC.Collect()
 
    End Sub
 
    '/ Methode zeitrummwahr
    Private Sub zeitrummwahr(ByVal source As Object, ByVal e As _
      ElapsedEventArgs)
        Console.WriteLine("=========== Zeitrumm = True ==============")
        zeitrumm = True
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
stetig steigende Speicherauslastung2.332DomiS13.03.06 08:55
Re: stetig steigende Speicherauslastung1.093ModeratorDaveS13.03.06 10:32
Re: stetig steigende Speicherauslastung1.071DomiS13.03.06 10:46
Re: stetig steigende Speicherauslastung1.087Oliver_G.13.03.06 10:52
Re: stetig steigende Speicherauslastung1.060immerSuchender13.03.06 10:55
Re: stetig steigende Speicherauslastung1.105DomiS13.03.06 11:06
Re: stetig steigende Speicherauslastung1.033ModeratorFZelle13.03.06 11:17
Re: stetig steigende Speicherauslastung1.121DomiS13.03.06 11:23

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