전체 소스 :
   



쓰레드를 만들어 1초에 1씩 증가하는 예제를 만들어 보겠습니다.
ThreadAdd() 메소드에 lock 을 사용하여 동기화를 하였습니다.



소스 :

        Thread threadADD;

        public FrmMain()
        {
            InitializeComponent();
        }

        public void ThreadAdd()
        {
            while (true)
            {
                lock(this)
                {
                    txbCount.Text = (Convert.ToInt32(txbCount.Text) + 1).ToString();
                    Thread.Sleep(1000);
                }
            }
        }

        private void btnSTART_Click(object sender, EventArgs e)
        {
            // 쓰레드 생성
            this.threadADD = new Thread(new ThreadStart( ThreadAdd));
            this.threadADD.Start();
        }

        public void Stop()
        {
            if (null == threadADD) return;
            threadADD.Abort();
        }

        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            Stop();
        }

원문 : http://whiteat.com/zbxe/37612

+ Recent posts