0

浏览器控件不是从 URL 获取数据——它来自应用程序的 .NET 端。

我一直在 mono-libgluezilla-mozilla 链的某个地方遇到稳定性问题。

最初,我尝试对我自己的函数进行 JavaScript 调用(使用 browser.Document.InvokeScript),该函数将完成在 SlickGrid 中更新该单元格的工作。我认为大量 .NET 到脚本的调用会导致稳定性问题,因此我更改了代码,以便可以使用一个脚本调用(传递 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 毫秒调用一次。为了走得那么慢,我必须将网格的全部内容打包成一个 JSON 字符串并立即更新整个内容。有时它仍然会崩溃,但这是我能想到的最佳解决方案。现在放弃单声道。

于 2011-02-21T05:16:50.987 回答