언어/C#

[Thread]쓰레드 기본 코드

까망후니 2016. 7. 8. 14:16

쓰레드를 처음 쓰는 분들을 위한 예제 코드 입니다.


참조만 하세요..ㅎㅎ..




using System.Threading;



//---------------------------------------------------------------------------------------



public class Worker

    {

        private volatile bool _shouldStop;



        public void DoWork()

        {

            while (!_shouldStop)

            {

                Console.WriteLine("worker thread: start..." + DateTime.Now.ToString());


                try

                {

                    if (_shouldStop == true) break;

                  

//여기에 내가 돌리고 싶은 코드를 ~~~


                    

                }

                catch (Exception ex)

                {

                    Console.WriteLine(ex.ToString());

                }


                Thread.Sleep(1000);


            }

            Console.WriteLine("worker thread: terminating gracefully.");


            _shouldStop = false;

        }




        public void RequestStop()

        {

            _shouldStop = true;

        }

    }

//---------------------------------------------------------------------------------------


 private Worker worker = new Worker();

 private Thread workerThread;



 private void button1_Click(object sender, EventArgs e)

        {

            workerThread = new Thread(worker.DoWork);

            workerThread.Start();

            Console.WriteLine("Split Thread: Starting worker thread...");

        }


        private void button2_Click(object sender, EventArgs e)

        {

            try

            {

                worker.RequestStop();

                workerThread.Join();


            }

            catch (Exception ex)

            {

                System.Console.WriteLine(ex.ToString());               

            }           

        }