【问题标题】:Asynchronous call disregarded by AwesomiumAwesomium 忽略了异步调用
【发布时间】:2012-07-28 04:42:10
【问题描述】:

在 Awesomium-sharp 中,我这样编写 C# 代码:

WebControl webControl = new WebControl();
webControl.CreateObject("external");
SetObjectCallback("external", "JSCallback", OnJSCallback);


private int count = 0;

    private void OnJSCallback(object sender, JSCallbackEventArgs e)
    {
        Console.WriteLine("hi");
        MessageBox.Show("hi");

        if (count == 0)
        {
            Thread worker = new Thread(func =>
                {
                    Thread.Sleep(3000);
                    OnReturn();
                });
            worker.Start();
        }
        if (count == 1)
        {
            Thread worker = new Thread(func =>
            {
                Thread.Sleep(5000);
                OnReturn();
            });
            worker.Start();
        }
        count++;
    }

    private void OnReturn()
    {
            webControl.Dispatcher.BeginInvoke((ThreadStart) delegate()
            {
                webControl.CallJavascriptFunction("", "CallFromNative", new JSValue[] {new JSValue("hello")});
            });
    }

而javascript代码是这样的:

external.JSCallback("hello ", "world");
external.JSCallback("wtf ", "dude");

奇怪的问题是来自 Javascript 的第二次调用似乎被忽略了 从未被执行。 我的代码有什么问题?顺便说一句,AwesomiumSharp 的版本是 V1.6.6

【问题讨论】:

    标签: c# javascript asynchronous awesomium


    【解决方案1】:

    在我看来几乎没问题。

    我会这样做:

     webView.Callback += new EventHandler<CallbackEventArgs>(webView_Callback);
    
        webView.CreateObject("client");
        webView.SetObjectCallback("client", "message");
    
        void webView_Callback(object sender, CallbackEventArgs e)
        {
            if (e.CallbackName == "message")
                System.Windows.Forms.MessageBox.Show(e.Args[0].ToString());
        }
    

    它应该可以正常工作。你确定你甚至第二次执行功能吗?警报(“blabla”); message.client("test", "test2"),看看如果你稍等片刻然后做会发生什么。

    到目前为止,我使用过 Awesomium 回调系统,效果很好

    【讨论】:

      猜你喜欢
      • 2011-11-27
      • 2014-04-29
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多