Почему я получаю ошибку времени выполнения, когда запускаю элемент управления WebBrowser в другом потоке? - PullRequest
1 голос
/ 17 января 2012

Необработанное исключение в 0x0e90a1c0 в MyApp.exe: 0xC0000005: Нарушение прав доступа.

На основе сообщения Как создать и использовать элемент управления WebBrowser в рабочем потоке? Я пытаюсь запустить класс WebPagePump в другом потоке.

for (int i = 0; i < 5; i++)
{
    Thread t = new Thread(delegate() { WebNav1(); });
    t.Start();
}

private Action WebNav1 = delegate()
{
    WebPagePump a = new WebPagePump();
    a.Navigate(new Uri("http://www.mywebsite.com"));
    a.Completed += delegate(WebBrowser wb)
        {
            Console.WriteLine("It's loaded!");
            a.Dispose();
        };
};

1 Ответ

2 голосов
/ 17 января 2012

Вам необходимо указать одноэтажную квартиру:

Thread t = new Thread(delegate() { WebNav1(); });
t.ApartmentState = ApartmentState.STA;
t.Start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...