VB.Net by API/System/GC

Материал из VB Эксперт
Версия от 12:51, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

GC.Collect()

  

Imports System
Imports System.Text
Imports System.Text.RegularExpressions

Public Class MainClass
    Shared Sub Main(  )
    Dim myObject As Object = New Object()
    Dim i As Integer
    For i = 0 To 3
      Console.WriteLine(String.Format("Generation = {0}", _
                        GC.GetGeneration(myObject)))
      GC.Collect()
      GC.WaitForPendingFinalizers()
    Next i
    End Sub "Main
   
End Class


GC.GetGeneration

  
Imports System
Imports System.Text
Imports System.Text.RegularExpressions

Public Class MainClass
    Shared Sub Main(  )
    Dim myObject As Object = New Object()
    Dim i As Integer
    For i = 0 To 3
      Console.WriteLine(String.Format("Generation = {0}", _
                        GC.GetGeneration(myObject)))
      GC.Collect()
      GC.WaitForPendingFinalizers()
    Next i
    End Sub "Main
   
End Class


GC.GetTotalMemory

  
 
Module Module1
    Sub Main()
        Console.WriteLine("Starting Heap Space: " & GC.GetTotalMemory(False))
        Dim BigArray(50000) As Byte
        Dim BiggerArray(250000) As Byte
        Console.WriteLine("Heap Space After Arrays: " & GC.GetTotalMemory(False))
        BigArray = Nothing
        Console.WriteLine("Final Heap Space: " & GC.GetTotalMemory(True))
    End Sub
End Module


GC.SuppressFinalize

  
Imports System
Imports System.Drawing
Imports System.Data
Imports System.IO
Imports System.Collections
Imports System.Windows.Forms
Imports System.Drawing.Printing
Public Class MainClass
    Shared Sub Main()
        Dim file As New MyFile("c:\FinalizeDemo.txt")
        " now, clear the reference to the object...
        file.Dispose()
        file = Nothing
        " wait for the user to press return...
        Console.WriteLine("Press Return to collect the garbage...")
        " force a collect...
        GC.Collect()
        " wait for the user to quit...
        Console.WriteLine("Press Return to quit...")
    End Sub
End Class

Public Class MyFile
    Implements IDisposable
    Private stream As FileStream
    Private isDisposed As Boolean

    Public Sub New(ByVal filename As String)
        stream = New FileStream("test.txt", FileMode.OpenOrCreate)
        Console.WriteLine("Object " & GetHashCode() & " created.")
        Console.WriteLine("Using file: " & filename)
    End Sub
    Public Sub Dispose() Implements System.IDisposable.Dispose
        If isDisposed = True Then Return
        
        stream.Close()
        stream = Nothing
        isDisposed = True
        GC.SuppressFinalize(Me)
        Console.WriteLine("Object " & GetHashCode() & " disposed.")
    End Sub
    Protected Overrides Sub Finalize()
        Dispose()
        Console.WriteLine("Object " & GetHashCode() & " finalized.")
    End Sub
End Class


GC.WaitForPendingFinalizers()

  
Imports System
Imports System.Text
Imports System.Text.RegularExpressions

Public Class MainClass
    Shared Sub Main(  )
    Dim myObject As Object = New Object()
    Dim i As Integer
    For i = 0 To 3
      Console.WriteLine(String.Format("Generation = {0}", _
                        GC.GetGeneration(myObject)))
      GC.Collect()
      GC.WaitForPendingFinalizers()
    Next i
    End Sub "Main
   
End Class