gpt4 book ai didi

.net - 明确的控制措施不会将其处置-有什么风险?

转载 作者:行者123 更新时间:2023-12-04 05:35:11 27 4
gpt4 key购买 nike

关于以下事实,存在多个线程(abc等):.NET组件容器中的 Clear ()项不处置它们(通过调用Dispose(true))。

恕我直言,最常见的是,应用程序中不再使用Clear-ed组件,因此在从父容器中清除它们后,需要将其明确地处置。

可能是一个好主意,集合的Clear方法具有一个 bool 参数dispose,当该参数为true时,它也会在从列表中删除之前处理​​集合元素?

最佳答案

要求这样的修改是没有意义的,Windows窗体团队已经解散了很久了。它处于维护模式,仅考虑安全问题和操作系统不兼容。

否则,创建您自己的方法来执行此操作就足够简单了:

  public static class ExtensionMethods {
public static void Clear(this Control.ControlCollection controls, bool dispose) {
for (int ix = controls.Count - 1; ix >= 0; --ix) {
if (dispose) controls[ix].Dispose();
else controls.RemoveAt(ix);
}
}
}

现在您可以编写:
  panel1.Controls.Clear(true);

关于.net - 明确的控制措施不会将其处置-有什么风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1969705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com