javascript - dotnetbrowser 从 JavaScript 调用 .NET - ThreadProblem
问题描述
[dotnetbrowser] 从 JavaScript 调用 .NET - ThreadProblem
我正在使用 vb net,vs 2017 和 WPF,没有 mvvm。
我的 Wpf 主窗口包含一个 dotnetbrowser-Webbrowser 控件(仅限评估)。看起来这样:
<wpf:WPFBrowserView x:Name="WebBrowser1" Background="Transparent" Panel.ZIndex="1110"
Margin="-5,-5,0,0" Grid.ColumnSpan="2"
BrowserType="LIGHTWEIGHT" VerticalAlignment="Top" HorizontalAlignment="Left"
Width="300" Height="300" >
<wpf:WPFBrowserView.Preferences>
<DotNetBrowser:BrowserPreferences TransparentBackground="True"/>
</wpf:WPFBrowserView.Preferences>
</wpf:WPFBrowserView>
我定义了一个这样的事件:
AddHandler WebBrowser1.Browser.ScriptContextCreated,
Sub(sender As Object, e As ScriptContextEventArgs)
Dim value As JSValue = WebBrowser1.Browser.ExecuteJavaScriptAndReturnValue("window")
value.AsObject().SetProperty("Account", New Account())
End Sub
该帐户如下所示:
Public Class Account
Public Sub Save(firstName As String, lastName As String)
Try
MessageBox.Show(firstName & " " & lastName)
Dim freileg As New winLeg(firstName)
freileg.Show()
Catch ex As Exception
l(ex.ToString())
End Try
End class
消息框正确显示名字姓氏。但是新的 WPFWindow(winleg) 粉碎了错误:
Beim aufrufenden Thread muss es sich um einen STA-Thread handeln, da dies für viele Komponenten der Benutzeroberfläche erforderlich ist.
(英语:调用线程必须是 STA,因为它对 UI 的许多组件都是必需的)
我需要在我的主 wpf 窗口线程中返回数据。我不太习惯线程(Backgroundworker 除外),所以我一无所知。任何帮助,将不胜感激。
解决方案
尝试使用应用程序调度程序调用您的代码。这是示例Account
实现:
Public Class Account
Public Sub Save(firstName As String, lastName As String)
Application.Current.Dispatcher.BeginInvoke(
Sub()
Try
Dim window As New Window()
window.Title = firstName & " " & lastName
window.Width = 320
window.Height = 240
window.Show()
Catch ex As Exception
Debug.WriteLine(ex.ToString())
End Try
End Sub)
End Sub
End Class
推荐阅读
- linux - CPU_ZERO“未定义符号”在 NASM 中使用 pthread_setaffinity_np
- javascript - 如何配置 MathJax 以在 HTML 中呈现化学方程式?
- javascript - 提示到 innerhtml
- oracle - 定义到达时间大于预定约会窗口结束时间 30 分钟的逻辑:Oracle
- sql-server - 使用 ROW_NUMBER() 删除 SQL Server 中的重复项
- groovy - 如何在 Geb 测试中使用兄弟姐妹()和最近()
- firebase - Firebase Admin SDK NodeJS - “没有与提供的标识符相对应的用户记录。” 错误
- android - 升级RN版本时Android AppCompat主题问题
- regex - 如何删除除字母、数字和!? . ; , @ ' 在 python pandas df 中使用正则表达式?
- javascript - slice() 在控制台中正确返回,但字符串没有被替换