我可以从Windows 10(UWP)应用程序中的Web工作者调用自定义运行时组件

时间:2016-06-24 15:35:41

标签: javascript c# windows-10 uwp web-worker

我们计划在JavaScript中为Windows 10编写通用Windows平台应用程序。

我们还需要编写一些自定义运行时组件,最有可能在C#中编写。

我知道可以从主UI线程调用自定义运行时组件。现在的问题是:

可以从 Web Worker 中调用自定义运行时组件吗?

是否需要一些特殊的配置/设置/ api?

谢谢! 涓

1 个答案:

答案 0 :(得分:1)

  

可以从Web Worker中调用自定义运行时组件吗?

我做了一个基本的演示。自定义运行时组件适用于Web Worker。

我做了什么:

  1. 我创建了一个自定义运行时组件,并在我基于js的UWP项目中引用它。然后我将Class1.cs修改为Example.cs,如下所示:

    public sealed class Example
    {
        public static string GetAnswer()
        {
            return "This is Answer";
        }
    }
    
  2. 在我基于js的UWP项目中,我修改了main.js,如下所示:

    // Your code here!
    (function () {
        "use strict"
        var w;
        if (typeof Worker !== "undefined")
        {
            var w = new Worker("ms-appx:///js/webWorkerDemo.js");
            w.onmessage = function (evt)
            {
                document.getElementById("myContent").innerText = evt.data;
                w.terminate();
            }
        }
    })();
    

    并将myContent div放在index.html中:

    <body>
        <div id="myContent"></div>
        <script src="js/main.js"></script>
    </body>
    
  3. 我在js文件夹下添加了webWorkerDemo.js,除了调用运行时组件的GetAnswer方法和postMessage之外什么都没做:

      var str = MyRuntimeComponent.Example.getAnswer();
      postMessage(str);
    
  4. 当应用运行时,&#34;这是答案&#34;在应用中正确显示。因此,在Web Worker中使用自定义运行时组件时应该没问题。

    以下是完整的示例:WinJSSample