【问题标题】:Cannot access a disposed object named "ParkingWindow"无法访问名为“ParkingWindow”的已处置对象
【发布时间】:2008-10-17 20:15:54
【问题描述】:

我在 .NET 1.1 C# Windows 窗体应用程序中间歇性地出错。有人指出这是由于 1.1 框架中的一个错误,并建议将以下代码放入任何自定义控件中。

protected override void OnParentChanged(EventArgs e)
{
  if (this.Parent != null)
  {
    this.CreateParams.Parent = this.Parent.Handle;
    this.RecreateHandle();
  }
  base.OnParentChanged(e);
}

有没有其他人发现这解决了他们的问题?谁能提供一种方法来持续重现错误,以便我可以在应用更改后验证它是否已修复?

如果有其他解决方案,我也愿意。

【问题讨论】:

    标签: c# .net winforms .net-1.1


    【解决方案1】:

    从标题看来,您的代码正试图访问一个已处置的对象。如果您尝试访问托管引用字段,这可能会在终结器中发生。 CLR 完成托管对象的顺序是不确定的。

    【讨论】:

      【解决方案2】:

      嘿,我不确定您的问题,因为我已经很久没有使用过 .NET 1.1, 我不想说显而易见的事情......但是是什么阻止你迁移 到 .NET 2.0 甚至 3.5? (请不要觉得被冒犯,我其实很想知道)。

      我可以理解 .NET 3.5 在某些情况下可能会更早, 但是 .NET 2.0 应该是一个安全的选择,因为大多数用户都拥有它 无论是通过 Windows 更新,还是如果他们使用的是 Vista,他们都默认拥有它。

      【讨论】:

        猜你喜欢
        • 2022-01-11
        • 2020-04-23
        • 2017-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多