我有两个进程运行在我的UI线程上。但是,当我使用BeginGetStream功能运行第一个程序时,它进入循环并等待它的执行,并在您准备好时返回结果,但是在第二个运行中,通过BeginGetResponse功能,这个“死”在那里,程序不会继续,也不会返回我想要的值。在这些进程中使用IasynResult。
我试过:
一些代码示例:
第一次请求:
int number = 123;
1Request.Headers["Teste"] = string.Format("Teste{0}", number);
IAsyncResult AsyncronousResult= null;
try
{
await Task.Run(() => 1Request.BeginGetRequestStream(
(IAsyncResult result) =>
{
AsyncronousResult= result;
//handle.Set();
}, 1Request));
Task.WaitAny();
}
catch (Exception) { }第二次请求:
HttpWebRequest 2request = (HttpWebRequest)AsyncronousResult.AsyncState;
IAsyncResult AsyncronousResult = null;
Try
{
await Task.Run(() => 2request.BeginGetResponse(
(IAsyncResult result) =>
{
AsyncronousResult = result;
}, 2request));
Task.WaitAny();
}
catch
{
}..。我不知道还能尝试什么..。有人能帮我。
谢谢。
发布于 2015-04-14 10:57:33
任何HttpWebRequest都需要一个免费的UI线程来完成请求,但是您可以通过调用Task.WaitAny()阻止UI线程。
您绝不能阻止UI线程,特别是等待web请求的结果!
https://stackoverflow.com/questions/29612797
复制相似问题