0

ブラウザコントロールはURLからデータをフェッチしていません-それはアプリケーションの.NET側から来ています。

私はmono-libgluezilla-mozillaチェーンのどこかで安定性の問題に遭遇し続けています。

最初に、SlickGridのセルを更新する作業を行う独自の関数に対して(browser.Document.InvokeScriptを使用して)JavaScript呼び出しを試みました。大量の.NETからスクリプトへの呼び出しが安定性の問題の原因であると考えたので、1回のスクリプト呼び出し(JSON文字列を渡す)で行全体を更新できるようにコードを変更しました。しかし、安定性の問題は残っています。SlickGridをクリックしているのと同時にスクリプト呼び出しを行うことはできないようです。または、アプリケーション全体が次のようなセグメンテーション違反を起こします。

    mono() [0x48b231]
    mono() [0x4d48af]
    /lib64/libpthread.so.0(+0xf2e0) [0x7feeb2af32e0]
    /usr/lib64/libgluezilla.so(+0x108cf) [0x7feea96b58cf]
    /usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x1f3) [0x7feeb314ea93]
    /usr/lib64/libglib-2.0.so.0(+0x41270) [0x7feeb314f270]
    /usr/lib64/libglib-2.0.so.0(g_main_context_iteration+0x70) [0x7feeb314f510]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc5a5e3) [0x7feea35215e3]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc5a689) [0x7feea3521689]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xd747c0) [0x7feea363b7c0]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xd494a1) [0x7feea36104a1]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc5a596) [0x7feea3521596]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc485d6) [0x7feea350f5d6]
    /usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x1f3) [0x7feeb314ea93]
    /usr/lib64/libglib-2.0.so.0(+0x41270) [0x7feeb314f270]
    /usr/lib64/libglib-2.0.so.0(g_main_loop_run+0x195) [0x7feeb314f8f5]
    /usr/lib64/libgtk-x11-2.0.so.0(gtk_main+0xa7) [0x7feeada3e777]
    /usr/lib64/libgluezilla.so(_Z11gtk_startupPv+0x39) [0x7feea96b7549]
    /usr/lib64/libglib-2.0.so.0(+0x67e86) [0x7feeb3175e86]
    /lib64/libpthread.so.0(+0x6a4f) [0x7feeb2aeaa4f]
    /lib64/libc.so.6(clone+0x6d) [0x7feeb25fd82d]

スクリプト呼び出しを抑制してみました(呼び出しごとに10ミリ秒)。まだクラッシュします。

SlickGridの列が少ない場合、問題は軽減されるように見えますが、9列でも発生します。

私のテーブルには150行あります。

.NETからJavaScriptにデータを取得する別の方法はありますか?もしそうなら、おそらくmono + libgluezilla+SlickGridトリオがそれをよりうまく処理するでしょう。

4

1 に答える 1

0

秘訣は、スクリプト呼び出しを100ミリ秒ごとに1回の呼び出しなど、非常に遅いものに制限することのようです。これを遅くするには、グリッドのコンテンツ全体をJSON文字列にパックし、すべてを一度に更新する必要があります。それでも時々クラッシュしますが、これは私が思いつくことができる最善の解決策です。今モノをあきらめます。

于 2011-02-21T05:16:50.987 に答える