C# 如何在控制台应用程序中使用WebView2
当我运行上面的代码时,RecreReWebView2Async将获得此异常 “设置后无法更改线程模式。(HRESULT的异常: 0x80010106(RPC_E_已更改_模式))“ 我 如果在控制台或windows服务中没有winform dlg,我需要做什么来运行此操作C# 如何在控制台应用程序中使用WebView2,c#,webview2,C#,Webview2,当我运行上面的代码时,RecreReWebView2Async将获得此异常 “设置后无法更改线程模式。(HRESULT的异常: 0x80010106(RPC_E_已更改_模式))“ 我 如果在控制台或windows服务中没有winform dlg,我需要做什么来运行此操作 事实证明,关键在于主函数的[StatThread] string text = "return 'test';"; var webView = new Microsoft.Web.WebView2.WinF
事实证明,关键在于主函数的[StatThread]
string text = "return 'test';";
var webView = new Microsoft.Web.WebView2.WinForms.WebView2();
webView.EnsureCoreWebView2Async(null).RunSynchronously();
var srun = webView.CoreWebView2.ExecuteScriptAsync(text);
其他值得注意的项目
- 有时您需要设置应用程序的位,因为使用 在创建webview2 COM时,任何CPU的运行都将导致不确定的等待 反对
- 您可能需要设置webview2源属性以聚焦 实例转化为存在
class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Microsoft.Web.WebView2.WinForms.WebView2 webView21 = new Microsoft.Web.WebView2.WinForms.WebView2();
var ecwTask = webView21.EnsureCoreWebView2Async(null);
while (ecwTask.IsCompleted == false)
{
Application.DoEvents();
};
var scriptText = @"var test = function(){ return 'apple';}; test();";
var srunTask = webView21.ExecuteScriptAsync(scriptText);
while (srunTask.IsCompleted == false)
{
Application.DoEvents();
};
Console.WriteLine(srunTask.Result);
}
}