Beispiel #1
0
        public static void CheckThread() {
            // Get the URI from the command line.
            Uri httpSite = new Uri(url);

            // Create the request object.
            WebRequest wreq = WebRequest.Create(httpSite);

            // Create the state object.
            RequestState rs = new RequestState();

            // Put the request into the state object so it can be passed around.
            rs.Request = wreq;

            // Issue the async request.
            IAsyncResult r = (IAsyncResult)wreq.BeginGetResponse(
               new AsyncCallback(RespCallback), rs);

            // Wait until the ManualResetEvent is set so that the application 
            // does not exit until after the callback is called.
            //allDone.WaitOne();

            //Console.WriteLine(rs.RequestData.ToString());
        }
Beispiel #2
0
        private static void ReadCallBack(IAsyncResult asyncResult)
        {
            try
            {
                // Get the RequestState object from AsyncResult.
                RequestState rs = (RequestState)asyncResult.AsyncState;

                // Retrieve the ResponseStream that was set in RespCallback.
                Stream responseStream = rs.ResponseStream;

                // Read rs.BufferRead to verify that it contains data.
                int read = responseStream.EndRead(asyncResult);
                if (read > 0)
                {
                    // Prepare a Char array buffer for converting to Unicode.
                    Char[] charBuffer = new Char[BUFFER_SIZE];

                    // Convert byte stream to Char array and then to String.
                    // len contains the number of characters converted to Unicode.
                    int len =
                        rs.StreamDecode.GetChars(rs.BufferRead, 0, read, charBuffer, 0);

                    String str = new String(charBuffer, 0, len);

                    // Append the recently read data to the RequestData stringbuilder
                    // object contained in RequestState.
                    rs.RequestData.Append(
                        Encoding.ASCII.GetString(rs.BufferRead, 0, read));

                    // Continue reading data until
                    // responseStream.EndRead returns –1.
                    IAsyncResult ar = responseStream.BeginRead(
                        rs.BufferRead, 0, BUFFER_SIZE,
                        new AsyncCallback(ReadCallBack), rs);
                }
                else
                {
                    if (rs.RequestData.Length > 0)
                    {
                        //  Display data to the console.
                        string strContent;
                        strContent = rs.RequestData.ToString();
                        parseVersion(strContent);
                        if (buildVersion < newestBuildVersion)
                        {
                            if (silent && RegMemory.GetInt("checkUpdateSkipBuild", 0) == newestBuildVersion)
                            {
                                return; // User didn't want to see this update.
                            }
                            Main.main.Invoke(RHUpdater.Execute);
                        }
                        else if (!silent)
                        {
                            // MessageBox.Show("No new updates available.\r\nYou are using the latest version.", "Update status", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            MessageBox.Show(Trans.T("L_NO_NEW_UPDATES"), Trans.T("L_UPDATE_STATUS"), MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                    // Close down the response stream.
                    responseStream.Close();
                    // Set the ManualResetEvent so the main thread can exit.
                    allDone.Set();
                }
            }
            finally
            {
                Main.main.Invoke(RHUpdater.Finished);
            }
            return;
        }