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