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

댓글 없음:

댓글 쓰기

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

안드레이 카파시의 바이브 코딩 - 소프트웨어 3.0의 시대 영상입니다.

요즘 바이브 코딩이라는 단어가 유행입니다. 아래의 영상에서 공개되었군요. ㅎㅎ  최근에 가장 핫한 언어는 영어입니다. ㅎㅎ 사람의 말을 알아 듣는 LLM은 일종의 OS로 볼 수 있습니다.    https://www.youtube.com/watch?v=...