VB.Net by API/System/GC

Материал из VB Эксперт
Перейти к: навигация, поиск

GC.Collect()

<source lang="vbnet">

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


 </source>


GC.GetGeneration

<source lang="vbnet"> 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


 </source>


GC.GetTotalMemory

<source lang="vbnet">

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


 </source>


GC.SuppressFinalize

<source lang="vbnet"> 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


 </source>


GC.WaitForPendingFinalizers()

<source lang="vbnet"> 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


 </source>