Адресат вызова создал исключение что за ошибка

Подробная информация об использовании оперативной

(JIT) отладки вместо данного диалогового

окна содержится в конце этого сообщения.

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. —> System.AccessViolationException: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

в SAM.API.Wrappers.SteamApps003.NativeGetCurrentGameLanguage.Invoke(IntPtr thisObject)

— Конец трассировки внутреннего стека исключений —

в System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)

в System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)

в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)

в System.Delegate.DynamicInvokeImpl(Object[] args)

в SAM.API.NativeWrapper`1.Call[TReturn,TDelegate](IntPtr pointer, Object[] args)

в SAM.Game.Manager.OnUserStatsReceived(UserStatsReceived param)

в SAM.API.Callback`1.Run(IntPtr pvParam)

в SAM.API.Client.RunCallbacks(Boolean server)

в SAM.Game.Manager.OnTimer(Object sender, EventArgs e)

в System.Windows.Forms.Timer.OnTick(EventArgs e)

в System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)

в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Версия сборки: 2.0.0.0

Версия Win32: 2.0.50727.5483 (Win7SP1GDR.050727-5400)

Версия сборки: 6.3.0.987

Версия Win32: 6.3.0.987

Версия сборки: 6.3.0.799

Версия Win32: 6.3.0.799

Версия сборки: 2.0.0.0

Версия Win32: 2.0.50727.5483 (Win7SP1GDR.050727-5400)

Версия сборки: 2.0.0.0

Версия Win32: 2.0.50727.5467 (Win7SP1GDR.050727-5400)

Версия сборки: 2.0.0.0

Версия Win32: 2.0.50727.5483 (Win7SP1GDR.050727-5400)

Версия сборки: 2.0.0.0

Версия Win32: 2.0.50727.5420 (Win7SP1.050727-5400)

Версия сборки: 3.5.0.0

Примечание : Эта программа раньше работала, но после того, как чуть не заблокировали мою систему, эта программа перестала работать.

На событии TextChanged возникает ошибка

System.Reflection.TargetInvocationException: “Адресат вызова создал исключение.” Внутреннее исключение NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.

2 ответа 2

Перепишите код вот так!

При первом визове этого события у вас еще не создана екземпляр MainWindow ,следовательно и еще не работала функция InitializeComponent() и вы пытетесь получить еще не созданную TextBox2 .

Проблема в том, что, как правильно замечает @Vardan Vardanyan, интерпретация XAML, а значит, назначение обработчиков событий и привязка имён происходит во время выполнения InitializeComponent . При этом порядок этих операций не определён. В вашем случае порядок был следующим:

  • установился обработчик TextChanged
  • установилось значение Text в "TextBox" , при этом вызвался обработчик
  • далее переменной TextBox2 должно было быть присвоено значение, соответствующее текстбоксу, но это не успело произойти, т. к. на предыдущем шаге случилось исключение.
Читайте также:  Ati radeon hd 8670m

(Заметьте, что стандарта на порядок выполнения этих операций нет, любой порядок возможен.)

Вы можете игнорировать событие во время InitializeComponent , проверяя TextBox2 на равенство null . Но более чистым решением мне кажется подписка на событие после отработки InitializeComponent . Для этого нужно убрать TextChanged="TextBox1_TextChanged" из XAML и добавить в конструктор:

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *