gpt4 book ai didi

javascript - JavaScript 线程和 Silverlight UI 线程之间是什么关系?

转载 作者:数据小太阳 更新时间:2023-10-29 04:21:40 24 4
gpt4 key购买 nike

JavaScript 是单线程的 - Silverlight 不是,但 JavaScript 和 Silverlight 之间的交互必须在 Silverlight UI 线程上执行。

但是,Silverlight UI线程和JavaScript线程之间到底是什么关系呢?根据任何定义,它们是同一个线程,还是单独的线程,交互完全通过各自的事件循环执行,并在等待另一个线程时阻塞一个线程(例如,从 Silverlight 评估/调用 JavaScript 时)?换句话说,JavaScript 能否与 UI 线程上的 Silverlight 操作同时执行(同一页面中托管的多个 Silverlight 实例能否同时运行其 UI 线程)?

最佳答案

我没有使用过 Silverlight,但我已经对 Java Applets 和 Flash 进行了相当广泛的研究,所以我将从这个 Angular 发表评论。

您说得对,JavaScript 是单线程的。任何导致它阻塞的事情都会阻止所有其他计算和操作。在某些情况下,它甚至会锁定浏览器,尽管较新的浏览器在将选项卡分离到单独的进程方面做得越来越好,这很有帮助。

像 Silverlight 这样的插件中的任何线程都完全独立于浏览器中的 JavaScript。然而,它们之间的接口(interface)可能会阻塞。如果 Silverlight 的 UI 线程在与 native JS 通信时阻塞,则该线程在等待期间不会进行其他工作。其他线程可以继续正常工作。

要解决您关于 JS 是否可以在 Silverlight UI 线程上的操作正在运行时并发执行的问题,我不明白为什么不可以。它们有独立的运行时,只要它们不相互通信(这会导致阻塞),它们应该能够在隔离状态下保持良好运行。

我的直觉告诉我同一页面中的多个 Silverlight 实例也是如此,但这确实是一个我无法回答的架构设计问题。

希望这对您有所帮助!

关于javascript - JavaScript 线程和 Silverlight UI 线程之间是什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com