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