vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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: Multithreading und Speicherauslastung 
Autor: Kruemel666
Datum: 20.01.09 09:04

So hier noch der Code der jeweiligen Subs

Die Verweise:
Imports System.DirectoryServices
Imports System.IO
Imports System.Threading
Imports System.Data.SqlClient
Backgroundworker:
    Private Sub Backgroundworker1_DoWork(ByVal sender As System.Object, ByVal e _
      As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim ofs As New DirectoryEntry("WinNT://fileserver/lanmanserver")
        Dim c As DirectoryEntries
        Dim oshare As DirectoryEntry
        Dim threadnum As Integer
        Dim threadarray(Me.ProgressBar1.Maximum - 3) As Thread
        Dim i As Integer = 100
        For threadnum = 0 To Me.ProgressBar1.Maximum - 3
            threadarray(threadnum) = New Thread(AddressOf GetFolderSize)
        Next threadnum
        c = ofs.Children
        threadnum = 0
        For Each oshare In c
            Select Case oshare.Name
                Case "HOME"
                Case "user$"
                Case Else
                    threadarray(threadnum).Start("\\fileserver\" & oshare.Name)
                    threadnum += 1
                    Do While Process.GetCurrentProcess().Threads.Count > 100
                        Thread.Sleep(5000)
                    Loop
            End Select
        Next
        ofs.Dispose()
        c = Nothing
        oshare.Dispose()
    End Sub
Sub zur Erfassung der Größe:
    Sub GetFolderSize(ByVal state As Object)
        Try
            Dim Dirpath = CType(state, String)
            Dim size1 As Long = 0
            Dim size2 As Decimal
            Dim diBase As New DirectoryInfo(Dirpath)
            Dim files() As FileInfo
            Dim includeSubFolders As Boolean = True
            If includeSubFolders Then
                files = diBase.GetFiles("*", SearchOption.AllDirectories)
            Else
                files = diBase.GetFiles("*", SearchOption.TopDirectoryOnly)
            End If
            Dim ie As IEnumerator = files.GetEnumerator
            While ie.MoveNext
                size1 += DirectCast(ie.Current, FileInfo).Length
            End While
            size2 = Math.Round(size1 / 1024 / 1024, 2)
            SyncLock Me
                Me.dbentry(Dirpath, size2)
            End SyncLock
            Dirpath = Nothing
            size1 = Nothing
            size2 = Nothing
            diBase = Nothing
            files = Nothing
            GC.Collect()
            SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
        Catch ex As Exception
            Dim DirPath As String = CStr(state(1))
            MsgBox("Error in " & DirPath & ": " & ex.Message)
        End Try
        Me.Invoke(New progressDelegate(AddressOf progress))
        Me.Invoke(New txtdelegate(AddressOf timevorraus))
    End Sub


Beitrag wurde zuletzt am 20.01.09 um 09:05:28 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Multithreading und Speicherauslastung2.208Kruemel66620.01.09 08:59
Re: Multithreading und Speicherauslastung1.409Kruemel66620.01.09 09:04
Re: Multithreading und Speicherauslastung1.394ModeratorFZelle20.01.09 09:33
Re: Multithreading und Speicherauslastung1.414Kruemel66620.01.09 10:12
Re: Multithreading und Speicherauslastung1.356ModeratorFZelle20.01.09 11:26
Re: Multithreading und Speicherauslastung1.716Kruemel66620.01.09 15:02
Re: Multithreading und Speicherauslastung1.399ModeratorFZelle20.01.09 17:08
Re: Multithreading und Speicherauslastung1.314Kruemel66621.01.09 07:16
Re: Multithreading und Speicherauslastung1.341ModeratorRalf Ehlert21.01.09 08:42
Re: Multithreading und Speicherauslastung1.324Kruemel66621.01.09 10:56
Re: Multithreading und Speicherauslastung1.339ModeratorFZelle21.01.09 13: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