"Should" roku视频节点总是在任务线程中创建?

"Should" the roku video node be created in task thread always?

视频节点可以在渲染线程和任务节点线程中创建。视频节点是否只能在 "task node" 线程中创建?

从渲染线程的定义来看,渲染线程必须用于创建UI元素&任何阻塞操作都可以移动到任务节点线程。

所以,我的问题是,如果我正在创建视频播放器应用程序,那么视频播放器控件和 ui 元素可以在渲染线程中创建,任务节点线程应该有视频 url任务节点线程中的加载、事件监听器、按钮行为、播放器行为等。我对吗?

相反,您不应在任务线程中创建视频节点(或任何可渲染节点)。即使您能够在任务线程中创建视频节点,这些节点归渲染线程所有,因此您将触发非常昂贵的集合点操作。

来自documentation

You should generally not create renderable node objects in a Task node thread. The rendezvous mechanism will be required to create and operate on those node objects. Every field set or get operation on such nodes will require a full rendezvous, and this could impact the performance of your application.

不,您可以在任何线程上创建视频节点。考虑之前答案中的警告,因为视觉对象始终归渲染威胁所有,因此会有一些延迟 setting/getting 字段 - 但如果这不会对您的应用产生不利影响,请不要担心在哪里创建视频