我希望在我的 WP7 项目中使用 System.Threading.Task 库来处理我的异步 Web 请求。但是,在 WP7(我相信)中,您必须将 HttpWebRequest 类用于 http 请求(我的应用程序经常这样做)。HttpWebRequest 类只有一个 BeginGetResponse 方法,该方法通过要求您传入回调参数来强制您使用旧的异步编程模型。
有什么方法可以使用 WP7 进入现代性,还是我坚持使用 HttpWebRequests 和回调?
更新 Jon 给了我一些很好的指导,让我找到了使用 Task.Factory.FromAsync 将 APM 代码转换为 TPL 的正确方法,但我在使用 Task.Factory.FromAsync 方面真的很挣扎。第一个参数是 IAsyncResult,我假设它是您的 BeginGetResponse 或 BeginGetRequest 方法。但是第二个参数,我读过的文档通常建议应该是你的 end 方法,是一个 Func。HttpWebRequest 的 EndGetRequest 和 EndGetResponse 方法返回一个 Stream ......那时,我迷路了。