public static SignalFuture GetFuture(this tTask task) { if (task.IsCompleted && !task.IsFaulted) { return(SignalFuture.Signaled); } var result = new SignalFuture(); BindFuture(task, result); return(result); }