/// <summary> /// Calls Task.Run<T>() with a proper CancellationToken. /// </summary> public static Task <TSource> RunTask <TSource> (this AsyncTask asyncTask, Func <TSource> body) => Task.Run(body, asyncTask.CancellationToken);
static void LogErrorAndCancel(AsyncTask asyncTask, Exception exc) { asyncTask.LogCodedError("XA0000", "Unhandled exception: {0}", exc); asyncTask.Cancel(); }
/// <summary> /// Calls Task.Run() with a proper CancellationToken. /// </summary> public static Task RunTask(this AsyncTask asyncTask, Action body) => Task.Run(body, asyncTask.CancellationToken);
static ParallelOptions ParallelOptions(AsyncTask asyncTask) => new ParallelOptions { CancellationToken = asyncTask.CancellationToken, TaskScheduler = TaskScheduler.Default, };