CefSharp.Winforms закрывает вкладку с помощью javascript, которая открылась в другом потоке

Мой предыдущий вопрос: CefSharp.Winforms закрыть вкладку с помощью javascript

Я реализовал интерфейс ILifeSpanHandler, чтобы создать новую вкладку и закрыть ее с помощью javascript. Однако вкладки, открытые с помощью javascript, не могут быть закрыты с помощью javascript, это приводит к закрытию всех вкладок, программ и исключению нулевых ссылок. Я пытался создать новую вкладку в другом потоке, и возникали аналогичные ошибки, в то время как вкладки, созданные основным потоком, могут быть нормально закрыты javascript window.close. Я понимаю, что создание новой вкладки с помощью javascript также может быть реализовано в конкретном потоке. Таким образом, закрытие javascript веб-браузера chromium, созданного в другом потоке, вызовет ошибки. Как я могу справиться с этим?


person Minh Giang    schedule 17.09.2015    source источник
comment
Верните созданную вами вкладку в поток UI.   -  person amaitland    schedule 17.09.2015
comment
Как мне маршалировать создание вкладки обратно в поток пользовательского интерфейса? Пожалуйста, помогите мне   -  person Minh Giang    schedule 18.09.2015
comment
Вы должны использовать Control.BeginInvoke: msdn.microsoft. com/en-us/library/0b1bf3y3(v=vs.110).aspx   -  person Yoshi    schedule 19.09.2015


Ответы (1)


Я расширил проект CefSharp.WinForms.Example, чтобы продемонстрировать новую функцию OnOpenUrlFromTab.

See relevant commit at https://github.com/cefsharp/CefSharp/commit/fff080869394bd6604125a1fdd7a592eaa8d9ae7#diff-2d452d0f740a396ca039eaeafed80b47R30

person amaitland    schedule 19.09.2015