Здравствуйте, я получаю эту ошибку:
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. Исправлена проблема.