ac-*_*lap 11 windows-phone-8 windows-phone-8.1
我试图在Windows Phone 8.1中使用这两种方法(WP 8),但是它给出了错误而且没有编译,很可能是因为它们被删除了.我尝试搜索新的API,但无法获得任何.这些的其他替代方案是什么?
Dispatcher.BeginInvoke( () => {}); msdn链接
System.Threading.Thread.Sleep(); msdn链接
Joh*_*alk 14
它们仍然适用于Windows Phone 8.1 SIlverlight应用程序,但不适用于Windows Phone应用程序.Windows应用商店应用的替代品是:
睡眠(请参阅.NET for Windows Store中的Thread.Sleep替换):
await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(30));
Run Code Online (Sandbox Code Playgroud)
Dispatcher(请参阅Deployment.Current.Dispatcher.BeginInvoke如何在Windows应用商店中运行?):
CoreDispatcher dispatcher = CoreWindow.GetForCurrentThread().Dispatcher;
await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { });
Run Code Online (Sandbox Code Playgroud)
Dispatcher.BeginInvoke( () => {}); 被替换为
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => {});
Run Code Online (Sandbox Code Playgroud)
并被System.Threading.Thread.Sleep();替换为
await Task.Delay(TimeSpan.FromSeconds(doubleValue));
Run Code Online (Sandbox Code Playgroud)
小智 6
请注意,不仅API已更改(从WindowsStore应用程序采用API),而且在Windows Phone 8.0中获取Dispatcher的方式也发生了变化.
@Johan Faulk的建议尽管可行,但在多种条件下可能会返回null.
抓住调度员的旧代码:
var dispatcher = Deployment.Current.Dispatcher;
or
Deployment.Current.Dispatcher.BeginInvoke(()=>{
// any code to modify UI or UI bound elements goes here
});
Run Code Online (Sandbox Code Playgroud)
Windows 8.1部署中的新增功能不是可用对象或命名空间.
为了确保获得主UI线程调度程序,请使用以下命令:
var dispatcher = CoreApplication.MainView.CoreWindow.Dispatcher;
or
CoreApplication.MainWindow.CoreWindow.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
()=>{
// UI code goes here
});
Run Code Online (Sandbox Code Playgroud)
另外,虽然方法SAYS将执行Async,但是关键字await不能在RunAsync调用的方法中使用.(在上面的例子中,该方法是匿名的).
为了在上面的匿名方法中执行一个等待的方法,使用async关键字在RunAsync()内部装饰匿名方法.
CoreApplication.MainWindow.CoreWindow.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
**async**()=>{
// UI code goes here
var response = **await** LongRunningMethodAsync();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8548 次 |
| 最近记录: |