无法访问名为“ParkingWindow”的已处置对象

时间:2008-10-17 20:15:54

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

我在.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);
}

有没有人发现这解决了他们的问题?任何人都可以提供一种方法来一致地重现错误,所以我可以在应用更改后验证它是否已修复?

如果有替代解决方案,我也会对此持开放态度。

2 个答案:

答案 0 :(得分:1)

从标题看来,您的代码似乎正在尝试访问已经处置的对象。如果您尝试访问托管引用字段,则可能会在终结器中发生这种情况。 CLR最终确定托管对象的顺序是不确定的。

答案 1 :(得分:0)

嘿,我不确定你的问题,因为我已经很久没用过.NET 1.1了, 而且我讨厌明白这一点......但是什么阻止你迁移 到.NET 2.0甚至3.5? (请不要觉得被冒犯,我实际上有兴趣知道)。

我可以理解.NET 3.5在某些情况下可能会早, 但是,鉴于大多数用户拥有它,.NET 2.0应该是一个安全的赌注 通过Windows更新或者如果他们使用Vista,他们默认使用它。

相关问题