OVRTask\<int\> MyOpAsync() {_id = Guid.NewGuid();var task = OVRTask.Create\<int\>(id);return task;}// later, when the task completes:void Update() {if (operationComplete) {OVRTask.SetResult(_id, result);}}
async void OnButtonPressed() {var result = await MyOpAsync();}
Guid.NewGuid()
ValueTuple\<T1, T2\>
var (result1, result2) = await OVRTask.Combine(task1, task2);
ValueTuple\<T1, T2, T3\>
var (result1, result2, result3) = await OVRTask.Combine(task1, task2, task3);
ValueTuple\<T1, T2, T3, T4\>
var (result1, result2, result3, result4) = await OVRTask.Combine(task1, task2, task3, task4);
ValueTuple\<T1, T2, T3, T4, T5\>
var (result1, result2, result3, result4, result5) = await OVRTask.Combine(task1, task2, task3, task4, task5);
ValueTuple\<T1, T2, T3, T4, T5, T6\>
var (result1, result2, result3, result4, result5, result6) = await OVRTask.Combine(task1, task2, task3, task4, task5, task6);
ValueTuple\<T1, T2, T3, T4, T5, T6, T7\>
var (result1, result2, result3, result4, result5, result6, result7) = await OVRTask.Combine(task1, task2, task3, task4, task5, task6, task7);
ValueTuple\<T1, T2, T3, T4, T5, T6, T7, T8\>
var (result1, result2, result3, result4, result5, result6, result7, result8) = await OVRTask.Combine(task1, task2, task3, task4, task5, task6, task7, task8);
async OVRTask\<bool\> DoSomethingAsync() {var anchor = await OVRAnchor.CreateSpatialAnchorAsync(pose); // \<\– implicitly generated OVRTask\<bool\>SomeMethodThatThrows();returntrue;}OVRTask\<bool\> task = DoSomethingAsync();// later...if (task.IsFaulted) {throw task.GetException();}
if (task.HasResult) {result = task.GetResult();returntrue;} else {result = default;returnfalse;}
// Something that returns an OVRTask\<T\>var task = GetResultAsync();// compiler uses GetAwaiter herevar result = await task;
var result = await GetResultAsync();
async OVRTask\<OVRAnchor\> DoSomethingAsync() {var anchor = await OVRAnchor.CreateSpatialAnchorAsync(pose); // doesn't throwthrownew Exception(); // Cannot be caught if using ContinueWithreturn anchor;}async void MethodA() {try {var anchor = await DoSomethingAsync();} catch (Exception e) {// okay; exception caught!}}void MethodB() {DoSomethingAsync().ContinueWith(anchor =\> {Debug.Log($"Anchor {anchor} created!");});}