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("작업 종료");
        }

댓글 없음:

댓글 쓰기

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

5월 14일 새벽에 chatGPT 4o가 발표되었습니다. 옵티마이즈, 옴니라는 의미인데 실시간 통역, 다자간 회의, 멀티모달 기능의 강화등이 보이네요.

  초격차로 OpenAI진영이 다시 앞서가는 모양을 보여주고 있습니다. 저도 새벽에 일어나자 마자 올라온 영상들과 글을 정리하고 있습니다. ㅎㅎ 영화 HER의 사진이 새벽에 많이 올라왔었는데 저도 안본 영화입니다. 주말에 한번 봐야 할 것 같습니다....