次の方法で共有


GC.Collect メソッド ()

すべてのジェネレーションのガベージ コレクションを強制的に実行します。

Overloads Public Shared Sub Collect()
[C#]
public static void Collect();
[C++]
public: static void Collect();
[JScript]
public static function Collect();

解説

このメソッドを使用して、アクセスできないすべてのメモリの収集を試みます。ただし、 Collect メソッドは、アクセスできないすべてのメモリが収集されることは保証していません。

メモリ内に保持された時間の長さにかかわらず、すべてのオブジェクトはコレクションの対象となります。ただし、マネージ コードで参照されるオブジェクトは収集されません。このメソッドを使用して、使用できる最大量のメモリの収集を強制的に試みます。

使用例

 
Imports System

Namespace GCCollect_Example
    Class MyGCCollectClass
        Private Const maxGarbage As Integer = 1000

        Shared Sub Main()
            'Put some objects in memory.
            MyGCCollectClass.MakeSomeGarbage()
            Console.WriteLine("Memory used before collection: {0}", GC.GetTotalMemory(False))

            'Collect all generations of memory.
            GC.Collect()
            Console.WriteLine("Memory used after full collection: {0}", GC.GetTotalMemory(True))
        End Sub

        Shared Sub MakeSomeGarbage()
            Dim vt As Version

            Dim i As Integer
            For i = 0 To maxGarbage - 1
                'Create objects and release them to fill up memory
                'with unused objects.
                vt = New Version()
            Next i
        End Sub
    End Class
End Namespace

[C#] 
using System;

namespace GCCollectExample
{
    class MyGCCollectClass
    {
        private const int maxGarbage = 1000;

        static void Main()
        {
            // Put some objects in memory.
            MyGCCollectClass.MakeSomeGarbage();
            Console.WriteLine("Memory used before collection: {0}", GC.GetTotalMemory(false));
         
            // Collect all generations of memory.
            GC.Collect();
            Console.WriteLine("Memory used after full collection: {0}", GC.GetTotalMemory(true));
        }

        static void MakeSomeGarbage()
        {
            Version vt;

            for(int i = 0; i < maxGarbage; i++)
            {
                // Create objects and release them to fill up memory
                // with unused objects.
                vt = new Version();
            }
        }
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;

const int  maxGarbage = 1000;

void MakeSomeGarbage() {
   Version* vt;
   for (int i = 0; i < maxGarbage; i++) {
      // Create objects and release them to fill up memory
      // with unused objects.
      vt = new Version();
   }
}

int main() {
   // Put some objects in memory.
   MakeSomeGarbage();
   Console::WriteLine(S"Memory used before collection: {0}", __box(GC::GetTotalMemory(false)));

   // Collect all generations of memory.
   GC::Collect();
   Console::WriteLine(S"Memory used after full collection: {0}", __box(GC::GetTotalMemory(true)));
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

GC クラス | GC メンバ | System 名前空間 | GC.Collect オーバーロードの一覧