您可以使用多行 lambda 表达式,如下所示:
If Me.InvokeRequired Then Me.Invoke(
Sub()
Dim element As HtmlElement = webbroswers(3).Document.GetElementById("ID")
If element IsNot Nothing Then
element.InnerText = TextBox4.Text
End If
End Sub
)
像这样检查它是否Nothing
比让它失败并捕获异常更有效。但是,如果您出于任何其他原因需要执行 Try/Catch,您也可以在多行 lambda 表达式中轻松执行此操作,例如:
If Me.InvokeRequired Then Me.Invoke(
Sub()
Try
webbroswers(3).Document.GetElementById("ID").InnerText = TextBox4.Text
Catch ex As Exception
' ...
End Try
End Sub
)
但是,如果 lambda 表达式太长,或者您希望在异常中具有更有意义的堆栈跟踪,则可以使用委托给实际方法,如下所示:
If Me.InvokeRequired Then Me.Invoke(AddressOf UpdateId)
'...
Private Sub UpdateId()
Try
webbroswers(3).Document.GetElementById("ID").InnerText = TextBox4.Text
Catch ex As Exception
' ...
End Try
End Sub