public static async Task <T> Run <T>(Func <ProgressController, Task <T> > callback, ProgressDialogOptions options, string dialogIdentifier) { if (options == null) { options = new ProgressDialogOptions(); } var controller = new ProgressController(options); Session session; if (dialogIdentifier != null) { session = controller.Dialog.ShowTracked(dialogIdentifier, 250d); } else { session = new MaterialWindow(controller.Dialog).ShowTracked(); } T result; try { result = await Task.Run(() => callback(controller)); } finally { session.Close(true); } return(result); }
public static Task <T> Run <T>(Func <ProgressController, Task <T> > callback, ProgressDialogOptions options, Session session) => Run(callback, options, (session as WindowSession)?.DialogIdentifier);
public static Task Run(Func <ProgressController, Task> callback, ProgressDialogOptions options, Session session) { return(Run(callback, options, (session as WindowSession)?.DialogIdentifier)); }
public static Task <T> Run <T>(Func <ProgressController, Task <T> > callback, ProgressDialogOptions options) => Run(callback, options, (string)null);
public static Task Run(Func <ProgressController, Task> callback, ProgressDialogOptions options) { return(Run(callback, options, (string)null)); }