私は、ユーザーが別のフォームから開くことができる形式を持つが生成されますブロック。フォームには、フォームの外部で保持される静的なBindingListsにバインドされたいくつかのコントロールがあり、これらのリストを変更するとイベントがトリガーされます。アンデッドフォームはまだイベント
後でユーザーがこのフォームの別のコピーを開くと、元のフォームのイベントが閉じられていても実行中であることがわかります。
どうすればいいですか?このことを強制終了するにはどうすればいいですか?心を通ってステーク?
更新:コメントに示されているように、静的なBindingListオブジェクトは古いフォームへのデータバインディングを維持していました。私にとっては、解決策はBindingListオブジェクトを取り除くことでした。なぜなら、とにかくデータバインディングプロパティを意図的に使用していないからです。
イベントの登録を解除する可能性はありますか?バインディングの設定を解除しますか? –
@MeirionHughes - 私はそうだと思いますが、私の本当の疑問は、どうしてこのフォームを処分しないのですか? –
廃棄は、GCによって決してクリーンアップされない_unmanaged_リソースをクリーンアップする場合にのみ使用します。これは一般的なクリーンアップに使用できますが、元々は管理されていないクリーンアップ用です。最後に、オブジェクトイベントハンドラの登録を解除しないと、オブジェクトは孤立しておらず、GCは解放できません。それでそれは生き続けるでしょう。 –