public static TaskAwaiter <Java.Lang.Object> GetAwaiter(this Task task) { var c = new AwaitableTaskCompleteListener <Java.Lang.Object>(); task.AddOnCompleteListener(c); return(c.GetAwaiter()); }
public static System.Threading.Tasks.Task AsAsync(this Task task) { var c = new AwaitableTaskCompleteListener <Java.Lang.Object>(); task.AddOnCompleteListener(c); return(c.AwaitAsync()); }
public static TaskAwaiter <TResult> GetAwaiter <TResult>(this Task task) where TResult : class, IJavaObject { var c = new AwaitableTaskCompleteListener <TResult>(); task.AddOnCompleteListener(c); return(c.GetAwaiter()); }
public static System.Threading.Tasks.Task <TResult> AsAsync <TResult>(this Task task) where TResult : class, IJavaObject { var c = new AwaitableTaskCompleteListener <TResult>(); // The Java Task<T> returned from this call is the same task // so we do not have to await it task.AddOnCompleteListener(c); return(c.AwaitAsync()); }