虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > WindowsPhone/WindowsMobile > windows phone 中HttpWebRequest异步线程同步

windows phone 中HttpWebRequest异步线程同步
类别:WindowsPhone/WindowsMobile   作者:码皇   来源:互联网   点击:

public class RequestState { public HttpWebRequest request { get; set; } public HttpWebResponse response { get; set; } public Stream streamResponse { get; set; } } public

public class RequestState
    {
        public HttpWebRequest request { get; set; }
        public HttpWebResponse response { get; set; }
        public Stream streamResponse { get; set; }
    }

    public class HttpHelper
    {
        public delegate void GetData(string text);

        public event GetData Data;

        public class HttpCallBackEvent
        {
            public HttpWebRequest request;
            public byte[] file;
            public string name;
            public string fileName;

        }


        public static ManualResetEvent allDone = new ManualResetEvent(false);

        public Stream HttpGet(string url )
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
            request.Method = "GET";

            RequestState state = new RequestState();
            state.request = request;

            request.BeginGetResponse(webResponseCallack,state);
            allDone.Reset();    www.2cto.com
            allDone.WaitOne();

            return state.streamResponse;
        }

        private void webResponseCallack(IAsyncResult result)
        {
            try             {
                RequestState state = (RequestState)result.AsyncState;
                HttpWebRequest request = state.request;
                state.response = (HttpWebResponse)request.EndGetResponse(result);
                state.streamResponse = state.response.GetResponseStream();
               
            }
            catch             { }
            finally             {
                allDone.Set();
            }
        }


}


作者:修修
相关热词搜索: windows phone HttpWebRequest