ホーム>source

ビデオノードは、レンダースレッドとタスクノードスレッドの両方で作成できます。 「タスクノード」スレッドでのみ作成されるビデオノードの義務はありますか?

レンダースレッドの定義から、UIエレメントを作成するにはレンダースレッドを使用する必要があり、ブロッキング操作はタスクノードスレッドに移動できると書かれています。

したがって、私の質問は、ビデオプレーヤーアプリケーションを作成している場合、ビデオプレーヤーコントロールとUI要素をレンダースレッドで作成でき、タスクノードスレッドにはタスクのビデオURLの読み込み、イベントリスナー、ボタンの動作、プレーヤーの動作などが必要ですノードスレッド。私は正しいですか?

あなたの答え
  • 解決した方法 # 1

    逆に、タスクスレッドでVideoノード(またはレンダリング可能なノード)を作成しないでください。タスクスレッドでVideoノードを作成することはできますが、それらのノードはレンダースレッドによって所有されているため、非常に高価なランデブー操作をトリガーすることになります。

    ドキュメントから:

    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.

  • 解決した方法 # 2

    いいえ、任意のスレッドでVideoノードを作成できます。ビジュアルオブジェクトは常にレンダーの脅威によって所有されるため、フィールドの設定/取得に多少の遅延が発生するという以前の回答の警告を考慮してください。ただし、それがアプリに悪影響を与えない場合は、ビデオの作成場所を気にしないでください。

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ javascript - 'on句の列' pm1ticketcustomer_id 'が不明です