【发布时间】:2014-12-01 22:29:54
【问题描述】:
我想发出非阻塞的 GET 和 POST 请求。我已经设法用BackgroundWorker 解决了它,但我需要你的帮助才能使用任务来实现它。
public Task<string> Post(Uri uri, string data)
{
return _webClient.UploadStringTaskAsync(uri, data);
}
public Task<string> Get(Uri uri)
{
return _webClient.DownloadStringTaskAsync(uri);
}
我需要按顺序运行请求。实现这一点的正确方法是什么?用async 和await 标记方法?使用Task.WaitAll()等待每个任务?
我所追求的一个例子:
Task<string> loginTask = Post("login", data);
// wait for webrequest to complete and make use of response string
// use data from first request in a new request:
Task<string> someOtherRequest = Get("details");
【问题讨论】:
-
您所追求的示例无法编译。 Post 方法的第一个参数是一个 Uri,但您传递的是一个字符串。
-
@Zack 这只是为了给你一个想法。做一个
new Uri(str) -
如果您希望任何人花时间帮助您,您需要付出一些努力来创建一个好的示例。 :\
-
你没有使用 HttpClient 和 async/await 有什么原因吗?
标签: c# winforms asynchronous