2

私は、高価な反復数学ルーチンを含む多くの大規模な非 OOP サブルーチンを独自のクラスに移動し始めています。より大きなサブルーチン (現在はクラス) の 1 つを使用したいときはいつでも、それらをオブジェクトとして作成します。オブジェクトが使用されなくなったら (呼び出し元のコードが終了したため)、それらはメモリから削除されると想定しています。

私の質問は: オブジェクトがボタンやトリガー サブルーチンを使用してインスタンス化され、そのルーチンのコードが実行される場合、コードが完了すると、そのオブジェクトはガベージ コレクションによってメモリから削除されますか?

また、ユーザーが一度に複数のクラスを実行することはないため、マルチスレッド化はしたくありません。

4

1 に答える 1

2

コードが完了すると、そのオブジェクトはガベージ コレクションによってメモリから削除されますか?

いいえ、必ずしもそうではありません。

そのコードが完了するとすぐに、オブジェクトへのアクティブな参照はなくなります。これは、ガベージ コレクションの対象になることを意味しますが、これはすぐには行われません。その後、適切な時期に収集されます。

于 2013-01-03T19:24:41.543 に答える