Почему MessageBox не выводит html?

Хочу получить html код страницы. Для этого использую CefSharp, так-как на сайте есть защита ввиде капчи. Решил использовать

string source = await browser.GetBrowser().MainFrame.GetSourceAsync();

были проблемы с deadlock, но вроде смотря через дебаг, код не умирает после этой строчки. Доходит до MessageBox и ничего не выводится!

Код:

 private async void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
        {
            string source = await browser.GetBrowser().MainFrame.GetSourceAsync();
 
            MessageBox.Show(source);
        }

фото из программы: введите сюда описание изображения

Заранее спасибо!


Ответы (1 шт):

Автор решения: default locale

Попробуйте запустить через BeginInvoke формы:

BeginInvoke(new Action(() => MessageBox.Show(source)));

Для того чтобы отобразить сообщение MessageBox.Show должен выполняться в потоке UI. Когда он выполняется в другом потоке (async), то сообщение не отображается и этот поток блокируется, т.к. метод ожидает действие пользователя. В результате приложение зависает.

→ Ссылка