コード例 #1
0
            private async Task TaskRunAsync()
            {
                ComponentContextAsserter.AssertRunningInComponentContext(this);

                /* Disable ourself and start a child task. */

                this.gameObject.SetActive(false);
                await this.Child.DoWork();
            }
コード例 #2
0
            private async Task RunAsync()
            {
                ComponentContextAsserter.AssertRunningInComponentContext(this);

                await Task.Yield();

                ComponentContextAsserter.AssertRunningInComponentContext(this);
                this.threadedEvent.Subscribe(this.OnWorkFinished);
                Task.Run(this.BackgroundCalculateAsync).DontWait();
            }
コード例 #3
0
            private async Task DoWorkAsync()
            {
                ComponentContextAsserter.AssertRunningInComponentContext(this);
                await Task.Yield();

                ComponentContextAsserter.AssertRunningInComponentContext(this);
                await Task.Yield();

                ComponentContextAsserter.AssertRunningInComponentContext(this);
            }
コード例 #4
0
            private async Task RunAsync()
            {
                ComponentContextAsserter.AssertRunningInComponentContext(this);

                await Task.Yield();

                for (int i = 0; i < 3; i++)
                {
                    await this.Wrapper.WrapWork(() => this.StartTask(this.DoWorkAsync));

                    ComponentContextAsserter.AssertRunningInComponentContext(this);
                }

                this.IsFinished = true;
            }
コード例 #5
0
            public Task DoWork()
            {
                return(this.StartTask(RunAsync));

                async Task RunAsync()
                {
                    ComponentContextAsserter.AssertRunningInComponentContext(this);

                    await Task.Yield();

                    this.WorkFinished = true;

                    ComponentContextAsserter.AssertRunningInComponentContext(this);
                }
            }
コード例 #6
0
            public Task WrapWork(Func <Task> taskCreator)
            {
                return(this.StartTask(RunAsync));

                async Task RunAsync()
                {
                    ComponentContextAsserter.AssertRunningInComponentContext(this);

                    // Do something before.
                    await Task.Yield();

                    ComponentContextAsserter.AssertRunningInComponentContext(this);

                    // Execute work.
                    await taskCreator.Invoke();

                    ComponentContextAsserter.AssertRunningInComponentContext(this);

                    // Do something after.
                    await Task.Yield();

                    ComponentContextAsserter.AssertRunningInComponentContext(this);
                }
            }
コード例 #7
0
 private void OnWorkFinished(object data)
 {
     ComponentContextAsserter.AssertRunningInComponentContext(this);
     this.receivedData.Add(data);
 }