辅助角色在嵌入在 WPF 项目中的 HTML 页中不起作用

Workers doesn't work in HTML page embedded in WPF project

本文关键字:不起作用 HTML 项目 WPF 角色      更新时间:2023-09-26

在 HTML 页面中执行脚本时,页面将变得无响应,直到脚本完成。因此,我想使用工人。我有一个问题:

<html>
<head>
</head>
<body>
<button onclick="startWorker()">Start Worker</button> 
<button onclick="stopWorker()">Stop Worker</button>
<br><br>
<script>
    var w;
    function startWorker()
    {
        if (typeof (Worker) !== "undefined")
        {
            if (typeof (w) == "undefined")
            {
               // Do something
            }
        }
        else
        {
            alert("Browser does not support Web Workers.");
        }
    }
    function stopWorker()
    {
        w.terminate();
        w = undefined;
    }
</script>
</body>
</html>

我收到"浏览器不支持 Web Workers"消息。

有没有其他方法可以使用多线程,以便在脚本完成之前页面变得响应?

多谢奥里安。

如果脚本使您的页面无响应,则它们的编程很差。研究异步编程 - 毕竟,JS已经在没有worker的情况下工作了很多年。

也就是说,如果你真的需要网络工作者,你基本上有一些选择:

  • 开始使用另一个嵌入式浏览器,这些包括:CefSharp,Awesomium。这些应该支持网络工作者。
  • 尝试查看此问题是否仍然发生在 最新的WebBrowser ,例如,IE11:http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version
  • 您始终可以将工作卸载到 C# 端,并通过互操作将结果推送到 Javascript。