using System; using System.Threading.Tasks; namespace VRMShaders { /// /// ImporterContext の 非同期実行 LoadAsync を補助する。 /// この関数を経由して await すること。 /// そうしないと、同期実行 Load 時にデッドロックに陥るかもしれない。 /// (SynchronizationContext に Post された 継続が再開されない) /// public interface IAwaitCaller { /// /// フレームレートを維持するために1フレーム待つ /// /// Task NextFrame(); /// /// 非同期に実行して、終了を待つ /// /// /// Task Run(Action action); /// /// 非同期に実行して、終了を待つ /// /// /// /// Task Run(Func action); } }