Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > исключение TargetInvocationException


Автор: vasmt 9.9.2008, 16:54
Из-за чего может возникнуть это исключение? 
Приложение построено на WinForms с многопоточностью.
Исключение выбрасывается в строчке:
Код

Application.Run(new mainForm());

В msdn написано "The exception that is thrown by methods invoked through reflection", если честно - то не понял выражение "through reflection".
Возможен ли выброс этого исключения при обращении двух потоков к одним и тем же незалоченным данным?
Спасибо.

Автор: QryStaL 9.9.2008, 17:35
Stack Trace посмотри

Автор: vasmt 9.9.2008, 18:44
Спасибо, буду разбираться.
Но все же, возможен ли выброс этого исключения при обращении двух потоков к одним и тем же незалоченным данным?

Автор: QryStaL 9.9.2008, 21:56
Нет. Будет обыкновенный race condition =)

Автор: source777 9.9.2008, 22:20
Цитата(vasmt @  9.9.2008,  16:54 Найти цитируемый пост)
В msdn написано "The exception that is thrown by methods invoked through reflection", если честно - то не понял выражение "through reflection".

Ну если дословно, то "Исключение, которое выбрасывается методами, вызванными через рефлексию."
Более точную причину исключения можно посмотреть в св-ве InnerException.

Автор: Dennnis 11.9.2008, 16:59

Видимо ты где-то вызываешь MethodInfo.Invoke().
Вот пример: 
Код

using System;
using System.Reflection;

namespace ConsoleApplication1
{
    class Program
    {
        public static void Method()
        {
            throw new Exception();
        }
        static void Main(string[] args)
        {
            Type type = typeof(Program);
            MethodInfo method = type.GetMethod("Method");
            method.Invoke(null, new object[] { });
        }
    }
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)