Example #1
0
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            // Loop
            while (true)
            {
                //CancellationPending 속성이 true로 set되었다면(위에서 CancelAsync 메소드 호출 시 true로 set된다고 하였죠?
                if ((worker.CancellationPending == true))
                {
                    //루프를 break한다.(즉 스레드 run 핸들러를 벗어나겠죠)
                    e.Cancel = true;
                    break;
                }
                else
                {
                    //메시지 수신

                    MqRecvVo mrvo = RabbitConsumer.getRevcMessages();
                    if (mrvo != null)
                    {
                        logger.Debug("bw_DoWork req_typ : " + mrvo.req_typ);
                        worker.ReportProgress(0, mrvo);
                    }

                    System.Threading.Thread.Sleep(500);
                }
            }
        }