| 12345678910111213141516171819202122232425262728293031323334 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace InABox.Avalonia.Dialogs;
- public static class ProgressDialog
- {
- public static async Task Execute(string message, Action work)
- {
- var dialog = new MessageDialogViewModel()
- .Message(message);
- var task = Task.Run(work).ContinueWith(task =>
- {
- dialog.Close(MessageDialogResult.None);
- }, TaskScheduler.FromCurrentSynchronizationContext());
- await dialog.Display();
- }
-
- public static async Task<TResult> Execute<TResult>(string message, Func<TResult> work)
- {
- var dialog = new MessageDialogViewModel()
- .Message(message);
- var task = Task.Run(work).ContinueWith(task =>
- {
- dialog.Close(MessageDialogResult.None);
- return task.Result;
- });
- await dialog.Display();
- return task.Result;
- }
- }
|