我应该在Windows Phone 8中将异步调用转换为同步吗?

Add*_*dev 1 .net c# windows-phone-7 async-await windows-phone-8

我是一个非常有经验的程序员,曾经在Android上编程,最近开始为Windows Phone编程.当我发现C#5.0中引入的async/await范例时.

我喜欢,但编程我的第一个应用程序注意到,例如,登录请求的简单网络连接使得异步遍及代码,从网络层到演示文稿.这对我来说很震撼,因为它迫使我重写所有接口,使它们返回Tasks而不是原始结果类型.

在例子中

public LoginRespose login(string username, string password)
Run Code Online (Sandbox Code Playgroud)

被转换成

public Task<LoginResponse> login(string username,string password);
Run Code Online (Sandbox Code Playgroud)

我已经看到很多帮助类允许将异步调用转换为同步.我应该使用其中一个"切断"网络层中的异步链并负责从UI异步调用它以避免阻塞主线程吗?

Yuv*_*kov 5

我应该使用其中一个"切断"网络层中的异步链并负责从UI异步调用它以避免阻塞主线程吗?

别.async是在呼叫链中一直传播的.这就是为什么模式说"一直异步".

我明白为什么你一开始会感到"震惊".理解您的整个调用层次结构需要异步,IE添加额外的TaskTask<T>方法才能使用异步,这有点令人难以理解.但是让它在你身上成长,这绝对是你要走的路.不要阻止异步代码,而是接受它.

例如,使用IAsyncCommand而不是ICommand处理异步操作.