次のように、メソッドを C# mono にインポートしています (dom_document は webkit-sharp に実装されていないため)。
class ExtendedWebView : WebKit.WebView {
[DllImport ("webkit-1.0")]
private static extern IntPtr webkit_web_view_get_dom_document (IntPtr raw);
public DOMDocument get_dom_document()
{
return new DOMDocument(webkit_web_view_get_dom_document(base.Handle));
}
}
base.Handle は WebView オブジェクトへの IntPtr です。webkit_web_view_get_dom_document は返されません。私は別のスレッドでこれを呼び出しています。スレッドは無期限にハングします。
また、メソッド呼び出しを分離して、それがハングしていたことを確認しました。IntPtr を渡し、戻り値を IntPtr に割り当てました。返されないのは間違いなく webkit_web_view_get_dom_document です。
なぜこれが起こっているのか知っている人はいますか?間違ったバージョンの Webkit を使用している可能性がありますか? その方法はありませんか?