2012-03-24 5 views
1

私はuserControlライブラリ..を作成し、NetworkStream、StreamReader、FileStreamを含んでいます。
このuserControlを持つフォームが閉じると、すべてを破棄する必要がありますか?
userControl1.Dispose()はすべての使い捨てオブジェクトを処理しますか?

私はユーザーコントロールにそのようなForm1_FormClosing(object sender,FormClosingEventArgs e)がないので、いつそれらのストリームを処分すべきですか?
userControl1.Dispose()はそれを処理しますか?事前に

感謝:)

+0

タグを更新することができますか?これが勝利のフォームであるとしますか? – Slugart

答えて

3

UserControl.Dispose()は、そのコンポーネントをそのコレクションのControlsコレクションに配置します。

UserControl.Disposedイベントを処理することも、properly implement the Dispose patternを処理することもできます。

C#ユーザーコントロールの場合、はUserControl1.Designer.csに自動作成されます。

protected override void Dispose(bool disposing) 
{ 
    if (disposing) 
    { 
     if (components != null) 
     { 
      components.Dispose(); 
     } 

     // Dispose your streams here 
    } 

    base.Dispose(disposing); 
} 
0

userControl1.Dispose()は魔法のあなたが何をすべきかである、あなたはそれを上書きしない限り、それの世話をし、あなたのオブジェクトを配置するコードを入れていません。

this answerをご覧になり、実装する方法を確認してください。イベントの再登録は、ストリームを廃棄する呼び出しに置き換えてください。