Exemplo n.º 1
0
        private void DoWork()
        {
            try
            {
                Trace.Write("DoWork", "-------------------- Doing Work ------------");
                m_Subject = new SubjectImpl();
                m_Subject.Message = new TextBox();

                Observer observer = new Observer(m_Subject);
                
                //Worker worker = new Worker();

                NotifyLogger += observer.UpdateLog;
                NotificationEvent += ObserverNotified;
                Message.TextChanged+=Message_TextChanged;

                //worker.Attach();
                //worker.Cancel = false;
                ////worker.Bereken(m_ProjectId, m_RootDir, m_Sof, m_Saf);
                DoDummyWork();

                Message.Text += "Gereed.\n\r";

            }
            catch (ThreadInterruptedException)
            {
                Message.Text = "interrupted!";
                Console.WriteLine("~~~~ thread2 interrupted...");
            }
            catch (Exception ex)
            {
                Message.Text = "interrupted!!" + ex.Message;
                if (NotifyLogger != null) NotifyLogger("\n" + ex.Message);
                if (NotifyLogger != null) NotifyLogger("\n" + ex.StackTrace);
                Console.Out.Write(ex);
                Console.WriteLine("~~~~ thread2 error...");
            }
            finally
            {
                Console.WriteLine("~~~~ thread2 initData2 ends ...~~~~");
                //button1.Enabled = true;
               
            }
        }
Exemplo n.º 2
0
        void Page_Load(object sender, EventArgs e)
        {
            m_TaskIds = new Queue<int>();
            m_AsyncResults = new Dictionary<int, IAsyncResult>();
            m_AsyncCallbacks = new Dictionary<int, AsyncCallback>();


            if (!IsPostBack)
            {
                m_MessageQ = new Queue<string>();
                Session["ObserverNotified"] = new Queue<string>();//Cross-process?
                Session["ObserverNotified-Stacked"] = new Stack<string>();//Cross-process?
                Session["TotalJobQueue"] = new Queue<string>();
                Session["countMaxNotification"] = 0;
                Session["countMaxNotifications"] = 0;
                Session["TaskQ-Empty"] = true; //init

            }

            if (IsAsync)
            {
                m_Subject = new SubjectImpl();
                m_Subject.Message = new TextBox();

                m_Observer = new Observer(m_Subject);

                // Create an instance of the test class.
                m_Producer = new AsyncDemo(HttpContext.Current.Session, HttpContext.Current.Trace);
                m_Producer.NotifyLogger += m_Observer.UpdateLog;
                m_Producer.AsyncNotificationEvent += ObserverNotified;
                m_Producer.Attach();

                Label1.Text = "Page_Load: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();

                BeginEventHandler bh = new BeginEventHandler(this.BeginGetAsyncData);
                EndEventHandler eh = new EndEventHandler(this.EndGetAsyncData);

                AddOnPreRenderCompleteAsync(bh, eh);

                // Initialize the WebRequest.
                string address = "http://localhost/";

                m_MyRequest = System.Net.WebRequest.Create(address);
            }
        }