VB.Net by API/System/GC
Версия от 16:40, 26 мая 2010; (обсуждение)
Содержание
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