public static Future <T> Error <T>(Exception e) { var f = new FutureImpl <T>(); f.SetError(e); return(f); }
public static Future <T> Success <T>(T result) { var f = new FutureImpl <T>(); f.SetResult(result); return(f); }
/// <summary> /// Start the function using ThreadPool. /// </summary> /// <param name='function'> /// Function. /// </param> /// <typeparam name='T'> /// Result type. /// </typeparam> public static Future <T> Start <T>(Function0 <T> function) { var f = new FutureImpl <T>(); ThreadPool.QueueUserWorkItem(WorkerMethod <T>, Tuples.Tuple <FutureImpl <T>, Function0 <T> >(f, function)); return(f); }