COMException: невозможно изменить режим потока после того, как он установлен в SureCoreWebView2Async(null) C# в ShowDialC#

Место общения программистов C#
Ответить
Anonymous
 COMException: невозможно изменить режим потока после того, как он установлен в SureCoreWebView2Async(null) C# в ShowDial

Сообщение Anonymous »

Я пытаюсь показать модальный диалог (ShowDialog), который был создан как WinForm. Диалоговое окно содержит элемент управления WebView2, который я хочу заполнить с помощью NavigateToString.
Я установил для свойства Source элемента управления WebView2 значение «about:blank», но когда я перехожу к Form_Shown() в форме диалогового окна (как предложено здесь),
CoreWebView2 имеет значение null.
Я попробовал вызвать await SureCoreWebView2Async() в Form_Load (как также предлагалось), но получил COMException, упомянутое в заголовке. Я также пытался сделать это изнутри делегата (form.Invoke или webView2Body.Invoke), что, как я думал, поместит код в поток пользовательского интерфейса элемента управления, но я все равно получаю то же исключение.
Как заставить это работать?

Вот код, который создает и показывает диалоговое окно:
Form2 formAsk = new Form2();
formAsk.Body = mailItem.Body;
DialogResult result = formAsk.ShowDialog();


Вот код внутри формы:
private void Form2_Load(object sender, EventArgs e)
{
this.Invoke((MethodInvoker)(delegate { EnsureCoreWebView2(); }));
Console.Write("Form2_Load is done");
}

private async void EnsureCoreWebView2()
{
await webView2Body.EnsureCoreWebView2Async();
Console.Write("EnsureCoreWebView2Async is done");
}

private void Form2_Shown(object sender, EventArgs e)
{
Console.Write("Form2_Shown is starting");
webView2Body.NavigateToString(Body);
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... ebview2asy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»