帮助在c#中线程化HttpWebRquest

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)

任何人的帮助都会被大大谴责

Ree*_*sey 8

你真的不需要线程HttpWebRequest.

当您使用带有HttpWebRequest的BeginGetResponse()和EndGetResponse()时,它已经为您使用后台线程以便异步工作.没有理由将其推入后台线程.

至于用法:HttpWebRequest.BeginGetResponse的帮助演示了一个完整的异步请求.