我认为PushAsync应该在调用后立即返回Task(我想在新布局出现时进行多次操作)。但对于这段代码
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Task task = Navigation.PushAsync(newRoot);
Debug.WriteLine(stopwatch.ElapsedMilliseconds + " ms"); // 1000 ms
await task;
Debug.WriteLine(stopwatch.ElapsedMilliseconds + " ms");// 1500 ms
stopwatch.Stop();
第一个写作线显示约1秒,第二个写作线在第一个后0.5秒调用。如何改进PushAsync以便立即返回?
感谢
答案 0 :(得分:1)
PushAsync是一种异步方法,这意味着它在后台执行任务,因此不会占用应用程序并阻止任何其他资源。
如果需要立即响应,则需要使用同步方法而不是异步方法。
答案 1 :(得分:0)
我有几个使用NavigationPage的应用程序,从未见过需要一秒钟才能请求导航。你碰巧没有勾住PushRequested或Pushed事件,对吗?这些是同步调用的,如果你的处理程序中有复杂的代码,很容易注入延迟。