public Future <T> Start <T> (System.Threading.Tasks.Task <T> task, TaskExecutionPolicy executionPolicy = TaskExecutionPolicy.RunAsBackgroundTask) { var future = task.GetFuture(); switch (executionPolicy) { case TaskExecutionPolicy.RunAsBackgroundTask: future.RegisterOnResolved(BackgroundTaskOnComplete); break; } return(future); }