C # Wpf Access Violation чтение после создания второго такого же типа usercontrol - PullRequest
0 голосов
/ 22 октября 2018

Здравствуйте, я получаю эту ошибку:

Exception thrown at 0x756D17D2 (KernelBase.dll) in app.exe: 0xC0000005: Access violation reading location 0x00000000.

Разборка выглядит следующим образом:

756D17D2  mov         ecx,dword ptr [esp+54h]

Эта ошибка возникает после создания второго пользовательского элемента такого же типаКод:

private void PrepareComplete()
    {
        Application.Current.Dispatcher.BeginInvoke(new Action(() =>
         {
             ThingsToFixList.Children.Clear();
             MainWindow.AppWindow.DisableField();
             Settings.Completed = true;
             AfterField.Visibility = Visibility.Visible;
             MessageBox.Show(Settings.Delete.ToString());
             if (Settings.Delete)
             {
                 MessageBox.Show("Completed");
             }
             else
             {
                 if (Settings.Score > 0)
                 {
                     //using (CustomTemplate GT = new CustomTemplate())
                    // {
                         CustomTemplate GT = new CustomTemplate();
                         ThingsToFixList.Children.Add(GT);
                     //}
                }
             }
         }), DispatcherPriority.ContextIdle);
    }

Этот код вызывается 3 раза: первый проход за один проход как Settings.Delete - false, второй проход - как Settings.Delete true, а третий раз - ошибка throws.

Где проблема, хотя usercontrol все еще остается в памяти, поэтому я попытался включить IDisposable с помощью такого метода:

 public void Dispose()
    {
        GC.SuppressFinalize(this);
    }

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

Редактировать 1: в этой строке выдается ошибка:

CustomTemplate GT = new CustomTemplate();

Решение: Действительноэто была проблема привязки, добавление IsAsync = True. Исправлена ​​проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...