Не удается получить доступ к удаленному объекту с именем «ParkingWindow» - PullRequest
1 голос
/ 18 октября 2008

Я периодически получаю сообщение об ошибке в моем приложении Windows Forms .NET 1.1 C #. Кто-то указал, что это связано с ошибкой в ​​платформе 1.1, и предложил добавить следующий код в любые пользовательские элементы управления.

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

Кто-нибудь еще обнаружил, что это решило проблему для них? Может ли кто-нибудь предоставить способ последовательного воспроизведения ошибки, чтобы я мог проверить, исправлена ​​ли она после применения изменений?

Если есть альтернативное решение, я тоже открыт для этого.

Ответы [ 2 ]

1 голос
/ 18 октября 2008

Из заголовка видно, что ваш код пытается получить доступ к уже удаленному объекту. Это может произойти в финализаторе, если вы попытаетесь получить доступ к управляемому справочному полю. Порядок CLR завершает управляемые объекты является недетерминированным.

0 голосов
/ 18 октября 2008

Привет, я не уверен в вашей проблеме, так как я не использовал .NET 1.1 целую вечность, и я ненавижу заявлять очевидное ... но что мешает вам мигрировать в .NET 2.0 или даже 3.5? (Пожалуйста, не обижайтесь, мне действительно интересно знать).

Я понимаю, что в некоторых случаях .NET 3.5 может быть ранним, но .NET 2.0 должна быть безопасной ставкой, учитывая тот факт, что у большинства пользователей она есть либо с помощью обновлений Windows, либо, если они используют Vista, они имеют ее по умолчанию.

...