ObjectA
私が(of classA
)を持っているとしましょう。
List<classB> bList;
ここで、それぞれobjectB
に実行中のスレッドがいくつかあるとします (外部からアクセスすることはできませんobjectB
) 。threadB1
threadB2
今、objectB
そのようなリストの特定で、それをthreadB2
発見しobjectBRemove==true
ます。
それが起こったら、そのようなオブジェクトからすべてのスレッドを終了し、それを削除したいと思いますbList
(事実上 this を破棄したいobjectB
)。
内部でイベントを発生させ、そのようなイベントに a のメソッドをobjectB
サブスクライブできると思いました:objectA
public void onObjectBRemove(object sender, EventArgs e)
{
bList.Remove((classB) sender);
}
objectB
これがのイベント発生後に呼び出されると、これはobjectB
リストから削除されます。次に、ガベージ コレクターは、objectB
参照されなくなったことに気付き、それを削除して、すべての内部スレッドも終了します。
これは機能するはずですか?これは目前の問題に対する合理的なアプローチですか?