BuildOwner クラス
1つのElementツリーについて、再構築が必要なElementの予約と実行順序を管理します。
名前空間: FloatSoda.Elements
アセンブリ: FloatSoda.dll
public class BuildOwner継承したメンバー
Section titled “継承したメンバー”object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()
コンストラクター
Section titled “コンストラクター”BuildOwner(Action)
Section titled “BuildOwner(Action)”指定したコールバックで再構築の予約を通知するBuildOwnerを生成します。
public BuildOwner(Action onBuildScheduled)パラメーター
Section titled “パラメーター”onBuildScheduled Action
再構築またはメインスレッドタスクの処理が必要になったときに呼び出す処理。
onBuildScheduledは任意のスレッドから呼び出されます。
ScheduledBuildFor経由ではElementツリーを処理するスレッドから呼ばれますが、
TaskSchedulerへ投入されたTaskが完了した場合はその完了スレッド
(I/Oスレッドやスレッドプール)から呼ばれます。
このため、コールバックはスレッドセーフな通知(フラグを立てる、フレームを予約するなど)に限り、
ElementツリーやRenderObjectツリーへ直接触れてはいけません。
ツリーの操作は必ずBuildScopeを実行するスレッドで行ってください。
FrameScheduler
Section titled “FrameScheduler”このツリーが属するウィンドウのフレームスケジューラ(通常はWidgetBinding)。 TickerがElement.Owner経由で自ウィンドウのフレームコールバックへ到達するために使います。
public IFrameScheduler? FrameScheduler { get; init; }プロパティの値
Section titled “プロパティの値”GestureBinding
Section titled “GestureBinding”このツリーが属するウィンドウのジェスチャ調停基盤(通常はWidgetBinding)。 GestureDetectorがElement.Owner経由で共有のアリーナ/ルータへ到達するために使います。
public IGestureBinding? GestureBinding { get; init; }プロパティの値
Section titled “プロパティの値”BuildScope(Action?)
Section titled “BuildScope(Action?)”任意の処理を実行した後、予約されたElementを親に近い順で再構築します。
public void BuildScope(Action? callback = null)パラメーター
Section titled “パラメーター”callback Action?
再構築待ちリストを処理する前に実行する処理。追加処理が不要な場合はnull。
処理中に新たな再構築が予約された場合も順序を再評価して同じスコープ内で処理します。 完了後は、処理したElementの待ちリスト登録状態を解除します。
ScheduledBuildFor(Element)
Section titled “ScheduledBuildFor(Element)”指定したElementを次のビルドスコープで再構築する対象として登録します。
public void ScheduledBuildFor(Element element)パラメーター
Section titled “パラメーター”element Element
再構築が必要なElement。
Elementがまだ待ちリストにない場合だけ追加します。 最初のElementを追加すると、コンストラクターで指定されたビルド予約処理を呼び出します。