GCクラスを使用することで、ガベージコレクタに対する要求や、ガベージコレクタの状態の取得を行うことができます。

一例として、GC.Collectメソッドを使うと、ガベージコレクタに対してガベージコレクションの実施を要求することができます。 メソッドが呼び出される時点で不要と判断されるオブジェクトの回収が行われます。 なお、ガベージコレクションは通常、適切なタイミングで自動的に行われます。

また、GC.WaitForPendingFinalizersメソッドを使うと、不要と判断されているオブジェクトに対するファイナライザ(実行が保留されているファイナライザ)の実行終了を待機することができます。

これらはいずれも、.NETランタイム全域に影響を及ぼし、またパフォーマンスにも影響するため、不用意に呼び出すことは避けるべきです。

GC.Collectメソッドでガベージコレクションの実施を要求する、GC.WaitForPendingFinalizersで保留中のファイナライザ実行を待機する
Imports System

Class Resource
  Public Sub New()
    Console.WriteLine("constructed")
  End Sub

  Protected Overrides Sub Finalize()
    Console.WriteLine("finalized")
  End Sub
End Class

Class Sample
  Shared Sub AllocateAndRelease()
    Dim res As New Resource()
  End Sub

  Shared Sub Main()
    ' オブジェクトを作成して、そのまま放棄する(破棄・解放ではない)
    AllocateAndRelease()

    ' GC.Collectメソッドを呼び出し、ガベージコレクションの実施を要求する
    Console.WriteLine("GC.Collect")
    GC.Collect()

    ' GC.WaitForPendingFinalizersメソッドを呼び出し、
    ' 保留されているファイナライザの実行を待機する
    Console.WriteLine("GC.WaitForPendingFinalizers")
    GC.WaitForPendingFinalizers()

    Console.WriteLine("end")
  End Sub
End Class
実行結果
constructed
GC.Collect
GC.WaitForPendingFinalizers
finalized
end