假设我有ObjectA
(of classA
),其中包含:
List<classB> bList;
现在让我们假设在每个objectB
线程中都有几个正在运行的线程(它们不能从外部访问objectB
),threadB1
并且threadB2
.
现在,在某个objectB
这样的列表中,threadB2
发现objectBRemove==true
.
发生这种情况时,我想终止此类对象的所有线程并将其从中删除bList
(我实际上想销毁 this objectB
)。
我想我可以在里面发起一个事件objectB
并订阅一个objectA
's 方法到这样的事件:
public void onObjectBRemove(object sender, EventArgs e)
{
bList.Remove((classB) sender);
}
当在objectB
事件上升之后调用它时,它应该objectB
从列表中删除。然后,垃圾收集器应该注意到objectB
它变得未被引用并因此删除它,同时终止所有内部线程。
这应该工作吗?这是解决手头问题的合理方法吗?