我正在讨论显示一个繁忙的页面,同时一些方法正在使用Template10处理我的项目。
目前我已实施:
await Task.Run(() => Methods());
我认为这是不正确的,因为使用这种方式会破坏一些方法(带有循环)和bindablebase。
我的代码:
private static void SetBusy_NewProject(bool busy, string text = null)
{
WindowWrapper.Current().Dispatcher.Dispatch(async () =>
{
var modal = Window.Current.Content as ModalDialog;
var view = modal.ModalContent as Busy;
if (view == null)
modal.ModalContent = view = new Busy();
modal.IsModal = view.IsBusy = busy;
view.BusyText = text;
await Task.Run(() => Methods.Groups.Body());
await Task.Run(() => Methods.Groups.Steel());
await Task.Run(() => Methods.Groups.CU());
await Task.Run(() => Methods.Groups.FP());
await Task.CompletedTask;
SetBusy_NewProject(false);
});
}
你能告诉我显示繁忙页面的正确方法吗?有些方法正在运行。
感谢任何帮助。
答案 0 :(得分:1)
要在Hamburger模板中使用Template10 Busy页面,您只需在任务之前调用Views.Busy.SetBusy(true, "My Loading text")
方法,在等待的任务之后调用Views.Busy.SetBusy(false)
。无需复制繁忙的班级'码。例如:
Views.Busy.SetBusy(true, "My Loading text");
await Task.Run(() => Methods.Groups.Body());
await Task.Run(() => Methods.Groups.Steel());
await Task.Run(() => Methods.Groups.CU());
await Task.Run(() => Methods.Groups.FP());
Views.Busy.SetBusy(false);