2014년 11월 6일 목요일

Task에 관련된 내용을 데모로 만들었습니다.

Task에 관련된 내용을 데모로 만들었습니다.
 조회 : 63
나의 폴더 > C# | 2013-02-05 (Tue) 19:21http://blog.dreamwiz.com/papasmf1/13929004
반응성과 멀티 쓰레드쪽에서 주로 나오는 코드들입니다.
Task에 관련된 데모들을 정리해 보았습니다.
   private void button1_Click(object sender, EventArgs e)
        {
            Task task1 = new Task(new Action(GetTheTime));
            task1.Start();
            //Anonymous Delegate를 사용하면 아래와 같다.
            Task task2 = new Task(delegate
            {
                Debug.WriteLine("현재 시간: {0}", DateTime.Now);
            });
            task2.Start();
            //Lamda 표현식을 사용한 경우 입력 =>(goes to) 출력
            Task task3 = new Task(() => MyMethod());
            task3.Start();
        }
        private static void GetTheTime()
        {
            Debug.WriteLine("현재 시간은 {0}", DateTime.Now);
        }
        private static void MyMethod()
        {
            Debug.WriteLine("현재 시간은 {0}", DateTime.Now);
        }
        private static void LongRunningMethodA()
        {
            Thread.Sleep(3000);
            Debug.WriteLine("A 현재 시간은 {0}", DateTime.Now);
        }
        private static void LongRunningMethodB()
        {
            Thread.Sleep(2000);
            Debug.WriteLine("B 현재 시간은 {0}", DateTime.Now);
        }
        private static void LongRunningMethodC()
        {
            Thread.Sleep(5000);
            Debug.WriteLine("C 현재 시간은 {0}", DateTime.Now);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //다중의 태스크를 실행하고 결과 기다리기
            Task[] tasks = new Task[3]
            {
                Task.Run( () => LongRunningMethodA()),
                Task.Run( () => LongRunningMethodB()),
                Task.Run( () => LongRunningMethodC())
            };
            //어느 태스크나 완료되면 바로 넘어간다.
            //Task.WaitAny(tasks);
            //모든 태스크가 완료되면 다음 단계로 넘어간다.
            Task.WaitAll(tasks);
            Debug.WriteLine("작업 종료");
        }

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

송길영 작가의 신간 - "경량문명의 탄생" 독서 후기입니다.

  문명이 바뀌고 있다는 것을 누구나 감지하고 있습니다. ㅎㅎ 중량문명이 아닌 경량문명의 시대가 도래하고 있습니다. 수업을 하면서, 또는 친구들과 대화하면서 문명이 바뀌고 있다는 말을 자주했는데 정말 설명하기 좋은 단어가 바로 "경량문명...