private async Task TaskRunAsync() { ComponentContextAsserter.AssertRunningInComponentContext(this); /* Disable ourself and start a child task. */ this.gameObject.SetActive(false); await this.Child.DoWork(); }
private async Task RunAsync() { ComponentContextAsserter.AssertRunningInComponentContext(this); await Task.Yield(); ComponentContextAsserter.AssertRunningInComponentContext(this); this.threadedEvent.Subscribe(this.OnWorkFinished); Task.Run(this.BackgroundCalculateAsync).DontWait(); }
private async Task DoWorkAsync() { ComponentContextAsserter.AssertRunningInComponentContext(this); await Task.Yield(); ComponentContextAsserter.AssertRunningInComponentContext(this); await Task.Yield(); ComponentContextAsserter.AssertRunningInComponentContext(this); }
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; }
public Task DoWork() { return(this.StartTask(RunAsync)); async Task RunAsync() { ComponentContextAsserter.AssertRunningInComponentContext(this); await Task.Yield(); this.WorkFinished = true; ComponentContextAsserter.AssertRunningInComponentContext(this); } }
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); } }
private void OnWorkFinished(object data) { ComponentContextAsserter.AssertRunningInComponentContext(this); this.receivedData.Add(data); }