1

フォームにいくつかのボタンがあります。すべてのボタンをクリックすると、同じボタンで新しいフォームが実行されます。何度もクリックしていると、エラー OutOfMemory が表示されます。
これはフォームオブジェクトをたくさん作っているからだと思います。
フォームがある場合、スタックをクリアするか、スタックからフォームを使用できますか?

4

2 に答える 2

3

メモリ リークの原因となる古いコンポーネントへのポインタ (参照) を保持しています。後でクリアしない限り、コンポーネントをクラスのメンバーとして保存しないようにしてください。

于 2011-11-27T10:35:13.367 に答える
1

コードに Singleton パターンを使用する必要があります。シングルトン パターンでは、フォーム クラスのオブジェクトを 1 つだけ作成します。オブジェクトが null の場合、新しいものを作成します else 、現在のものを返します。これについては、次のコードを参照してください。

// Private Constructor

private static myForm thisForm = null;

private myForm()
{
     thisForm = this;
}

// Now to Create Object, you need to create following getInstance Method

public static myForm getInstance()
{
         if ( thisForm == null ) 
         {
                thisForm = new myForm();
         }
         return thisForm;
}

コード全体で上記のロジックを試してください。OutOfMemory の問題は 100% 解決されます。

于 2011-11-25T02:13:19.947 に答える