Template10显示繁忙的任务延迟

时间:2016-08-21 19:18:21

标签: c# task uwp template10

我正在讨论显示一个繁忙的页面,同时一些方法正在使用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);

    });
}

你能告诉我显示繁忙页面的正确方法吗?有些方法正在运行。

感谢任何帮助。

1 个答案:

答案 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);