c# - 将 TPL 任务与 HttpWebRequest 结合使用

标签 c# windows-phone-7 asynchronous httpwebrequest task-parallel-library

我希望在我的 WP7 项目中使用 System.Threading.Task 库来处理我的异步 Web 请求。但是,在 WP7 中(我相信)你必须使用 HttpWebRequest 类来处理 http 请求(我的应用程序做了很多)。 HttpWebRequest 类只有一个 BeginGetResponse 方法,该方法通过要求您传入回调参数来强制您使用旧的异步编程模型。

有没有什么方法可以使用 WP7 进入现代,或者我是否受困于 HttpWebRequests 和回调?

更新 Jon 给了我一些很好的指导,让我找到使用 Task.Factory.FromAsync 将 APM 代码转换为 TPL 的正确方法,但我真的很难使用 Task.Factory.FromAsync。第一个参数是 IAsyncResult,我假设它是您的 BeginGetResponse 或 BeginGetRequest 方法。但是第二个参数,我读过的文档通常建议应该是你的结束方法,是一个 Func。 HttpWebRequest 的 EndGetRequest 和 EndGetResponse 方法返回一个 Stream ... 到那时,我迷路了。

最佳答案

一般来说,你可以使用 TaskFactory.FromAsync 建立一个Task<T>来自开始/结束方法对。

我不知道 TPL 的 WP7 版本是否支持它,但我会从这里开始。

另请参阅:"TPL and Traditional .NET Framework Asynchronous Programming" .

关于c# - 将 TPL 任务与 HttpWebRequest 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608159/

相关文章:

c# - 如何在mvc3,C#中将数字显示到小数点后两位?

c# - 避免在 LINQ 中保存对象

silverlight - Windows Phone 7 中的语音到文本

c# - 在windows phone项目中使用可移植类库

node.js - 如何在nodeJS中使同步功能异步

c# - C#中的API调用结构

c# - Kotlin 中是否有相当于 C# 的 DebuggerStepThrough 的功能?

android - 后台发短信到自己的手机号,短信列表不显示已发短信

Ruby 并发 : non-blocking I/O vs threads

python - Django 中的异步文件写入功能是否需要 Celery?