Исходящий вызов не может быть выполнен, поскольку приложение отправляет синхронный вызов ввода

Я получил это (ошибка в заголовке выше) из пула потоков System.Thread.Timer Итак, у меня есть TimerWrapper, который обертывает System.Thread.Timer, чтобы переместить фактическое выполнение в System.Thread.ThreadPool, и я все еще получаю его, поэтому я перемещаю его в новый поток (обратный вызов) .Start (), и я все еще получаю его. Как происходит отправка вызова синхронного ввода, когда я помещаю его в совершенно новый поток ???

Это очень-очень маленький прототип приложения, в котором все, что я делаю, это запускаю таймер, который делает это ...

    IEnumerable swc = SHDocVw.ShellWindows() 
    HashSet<WindowInfo> windows = new HashSet<WindowInfo>();
    foreach (SHDocVw.InternetExplorer ie in swc)
    {
        if (!ie.FullName.ToLower().Contains("iexplore.exe"))
            continue;

        IntPtr hwnd;
        IEPlugin.IOleWindow window = ie.Document as IEPlugin.IOleWindow;
        window.GetWindow(out hwnd);   

        WindowInfo info = new WindowInfo();
        info.handle = hwnd;
        info.extraInfo = ie;
        windows.Add(info);
    }
15
задан Dean Hiller 12 January 2012 в 17:10
поделиться