0

formタイトルの通り、フォームを破棄するとデータも全て破棄されるのdatasetsですか?

例:

Dim C As New Commands
C.ShowDialog
C.Disopse()

そのため、Cフォームには破棄されなかったオブジェクトが含まdatasetsれています。oledbconnectionsそうでない場合、メモリを解放してすべてのリソースを解放する最良の方法は何ですか?

4

2 に答える 2

0

他の .NET オブジェクトと同様に、フォームが破棄されるときにデータセットが破棄されることを保証することはできません。これは、メモリ内にオブジェクトへのアクティブなポインターがあるかどうかを .NET が常に監視しているためです。リンクが見つからない場合は、オブジェクトに割り当てられたメモリを解放します。このようなプロセスはガベージ コレクションと呼ばれ、CLR の機能です。

問題は、同じデータ セット、別のフォーム、クラス、さらには別のプロジェクトを指す変数を持つことができることです。これらの変数は、必要な数だけ生成できます。開発者は、オブジェクトを誰がどのように使用するかを制御するための戦略を策定する必要があります。そうしないと、特定の時点で特定のデータセットが実際に破棄されたかどうかを知ることができません。

句を使用すると、オブジェクトの破棄を制御できますが、最終的な解決策ではありません。自分が何をしているのかわからない場合でも、問題が発生する可能性があります。また、データ処理をより細かく制御するために、意図的に未処理の接続オブジェクトを他の関数に渡す必要がある場合もあります。

于 2013-01-19T02:52:48.870 に答える