gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:02 24 4
gpt4 key购买 nike

我是一位经验丰富的程序员,曾经在 Android 中编程,最近开始为 Windows Phone 编程。当我发现 C# 5.0 中引入的 async/await 范式时。

我很喜欢,但是在编写我的第一个应用程序时注意到,在示例中,用于登录请求的简单网络连接使得异步在整个代码中传播,从网络层到演示文稿。这让我感到震惊,因为它迫使我重写所有接口(interface),使它们返回任务而不是原始结果类型。

例子

public LoginRespose login(string username, string password)

转换成

public Task<LoginResponse> login(string username,string password);

我见过很多允许将异步调用转换为同步调用的辅助类。我是否应该使用其中之一来“切断”网络层中的异步链并注意从 UI 异步调用它以避免阻塞主线程?

最佳答案

Should I use one of them to "cut" the async chain in the network layer and take care of calling it asynchronously from the UI in order to avoid blocking the main thread?

不要。 async是沿着调用链向上传播的。这就是模式显示 "async all the way" 的原因.

我明白为什么您一开始会“震惊”。理解您的整个调用层次结构需要异步有点让人不知所措,即添加额外的 TaskTask<T>方法以便使用异步。但是让它在你身上成长,这绝对是要走的路。 Don't block on async code,而是拥抱它。

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

关于c# - 我应该在 Windows Phone 8 中将异步调用转换为同步吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28316873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com