我可以在 Windows 10 (UWP) 应用程序中从 Web Worker 调用自定义运行时组件吗
Can I call a custom runtime component from a web worker in a Windows 10 (UWP) app
我们计划在 JavaScript 中为 Windows 10 编写通用 Windows 平台应用程序。
我们还需要编写一些自定义运行时组件,最有可能使用 C#。
我知道可以从主 UI 线程调用自定义运行时组件。现在的问题是:
可以从 Web Worker 中调用自定义运行时组件吗?
是否需要一些特殊的东西configuration/settings/api?
谢谢!
娟
is possible to call a custom runtime component from within a Web Worker?
我做了一个基本的Demo。自定义运行时组件适用于 Web Worker。
我做了什么:
我创建了一个自定义运行时组件并在我基于 js 的 UWP 项目中引用它。然后我将 Class1.cs 修改为 Example.cs 如下所示:
public sealed class Example
{
public static string GetAnswer()
{
return "This is Answer";
}
}
在我基于 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>
我在js文件夹下添加了webWorkerDemo.js,除了调用runtime组件的GetAnswer方法和postMessage:
var str = MyRuntimeComponent.Example.getAnswer();
postMessage(str);
应用程序运行时,"This is Answer" 会在应用程序中正确显示。所以在Web Worker中使用自定义运行时组件应该没有问题。
这是完整的示例:WinJSSample。
我们计划在 JavaScript 中为 Windows 10 编写通用 Windows 平台应用程序。
我们还需要编写一些自定义运行时组件,最有可能使用 C#。
我知道可以从主 UI 线程调用自定义运行时组件。现在的问题是:
可以从 Web Worker 中调用自定义运行时组件吗?
是否需要一些特殊的东西configuration/settings/api?
谢谢! 娟
is possible to call a custom runtime component from within a Web Worker?
我做了一个基本的Demo。自定义运行时组件适用于 Web Worker。
我做了什么:
我创建了一个自定义运行时组件并在我基于 js 的 UWP 项目中引用它。然后我将 Class1.cs 修改为 Example.cs 如下所示:
public sealed class Example { public static string GetAnswer() { return "This is Answer"; } }
在我基于 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>
我在js文件夹下添加了webWorkerDemo.js,除了调用runtime组件的GetAnswer方法和postMessage:
var str = MyRuntimeComponent.Example.getAnswer(); postMessage(str);
应用程序运行时,"This is Answer" 会在应用程序中正确显示。所以在Web Worker中使用自定义运行时组件应该没有问题。
这是完整的示例:WinJSSample。