Как переписать этот код на C#?
[2008] Cross Thread issuses with WebBrowser control
'This is the method that runs in a separate thread
Private Sub doSomething()
Dim innerHTML As String = GetInnerHTML()
MessageBox.Show(innerHTML)
End Sub
Private Delegate Function GetInnerHTMLCallBack() As String
Private Function GetInnerHTML() As String
If WebBrowser1.InvokeRequired Then
Return CStr(WebBrowser1.Invoke(New GetInnerHTMLCallBack(AddressOf GetInnerHTML)))
Else
Return WebBrowser1.Document.Body.InnerHtml
End If
End Function
Осилил так, ниже указана ошиба выдаваемая компилятором:
public string GetHtml()
{
return GetHtmlThreadSafe();
}
private delegate string GetHtmlCallback();
private string GetHtmlThreadSafe()
{
string result = "";
if (_br.InvokeRequired == true)
{
GetHtmlCallback mydelegate = new GetHtmlCallback(GetHtmlThreadSafe);
result = _br.Invoke(mydelegate); //Здесь ошибка:
//Error 1 Cannot implicitly convert
//type 'object' to 'string'. An explicit
//conversion exists (are you missing a cast?)
}
else
{
result = _br.DocumentText;
}
return result;
}