コード例 #1
0
ファイル: SceneWriter.cs プロジェクト: HelpOrMe/Ject
        public void Write(Dictionary <Component, List <Context> > componentContexts)
        {
            BeforeWrite?.Invoke();

            foreach (Identifier id in ContractWriters.ContractIds)
            {
                Contracts[id] = ContractWriters.WriteContract(id);
            }

            foreach (Component component in componentContexts.Keys)
            {
                BeforeComponentWrite?.Invoke(component);
                WriteComponent(component, componentContexts[component]);
                AfterComponentWrite?.Invoke(component);
            }

            AfterWrite?.Invoke();
        }
コード例 #2
0
ファイル: SceneWriterAsync.cs プロジェクト: HelpOrMe/Ject
        public async Task WriteAsync(Dictionary <Component, List <Context> > componentContexts)
        {
            BeforeWrite?.Invoke();

            foreach (Identifier id in ContractWriters.ContractIds)
            {
                Contracts[id] = ContractWriters.WriteContract(id);
                await Task.Yield();
            }

            foreach (Component component in componentContexts.Keys)
            {
                WriteComponent(component, componentContexts[component]);
                await Task.Yield();
            }

            AfterWrite?.Invoke();

            Contracts.Clear();
            ContextContracts.Clear();
        }