Mat*_*hry 0 c# multithreading httpwebrequest iasyncresult
大家好,只是想知道是否有人可以帮助我尝试正确地编写我的应用程序,我不断遇到一个又一个障碍,我从来没有去过应用程序中的线程.我试过这个http://www.developerfusion.com/code/4654/asynchronous-httpwebrequest/教程.
基本上我只是试图阻止我的请求挂起我的应用程序
public class Twitter
{
private const string _username = "****",
_password = "****";
private WebResponse webResp;
public string getTimeLine()
{
Thread thread = new Thread(new ThreadStart(TwitterRequestTimeLine));
thread.IsBackground = true;
thread.Start();
using (Stream responseStream = webResp.GetResponseStream())
{
//
using (StreamReader reader = new StreamReader(responseStream))
{
return reader.ReadToEnd();
}
}
}
private void TwitterRequestTimeLine()
{
string aUrl = "http://168.143.162.116/statuses/home_timeline.xml";
HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(aUrl);
SetRequestParams(request);
request.Credentials = new NetworkCredential(_username, _password);
//WebResponse tempResp = request.GetResponse();
ThreadState state = new ThreadState();
IAsyncResult result = request.BeginGetResponse(new AsyncCallback(???), ???);
}
private static void SetRequestParams( HttpWebRequest request )
{
request.Timeout = 500000;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "AdverTwitment";
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何人的帮助都会被大大谴责
你真的不需要线程HttpWebRequest.
当您使用带有HttpWebRequest的BeginGetResponse()和EndGetResponse()时,它已经为您使用后台线程以便异步工作.没有理由将其推入后台线程.
至于用法:HttpWebRequest.BeginGetResponse的帮助演示了一个完整的异步请求.