진단도구(Diagnostic Tools) 활성화
비동기 처리 프로그래밍을 공부하기 위해서는 실제 소요시간이 얼마나 됐는지 알아야합니다.
따라서 비주얼 스튜디오에서 제공하는 진단 도구를 이용하여 소요시간이 얼마나 됐는지 확인하겠습니다.
먼저 ASP.Net 프로젝트 생성 후 다음과 같이 진행합니다.
※ 비주얼 스튜디오는 디버깅모드의 화면을 별도로 구성할 수 있기 때문에 반드시 디버깅 모드에서 활성화해야합니다.
디버그 > 창 > 진단 도구 표시
단축키 : 'Ctrl + Alt + F2'
진단도구(Diagnostic Tools)를 이용하여 소요시간 확인
'Controllers\HomeController.cs'에 다음 메서드를 추가합니다.
// HomeController.cs
public static void Test1() {
Thread.Sleep(4000); //4초 딜레이
}
public static void Test2() {
Thread.Sleep(6000); //6초 딜레이
}
Contach() 메서드를 다음과 같이 작성합니다.
public ActionResult Contact() {
Test1();
Test2();
return View();
}
'Test1'에선 4초, 'Test2'에선 6초가 걸리며 총 10초의 시간이 소요됩니다.
실제 시간을 확인하기 위해 'Contact()' 메소드의 'Test1()'과 'return 0'에 중단점(F9)을 설정한 후 디버깅(F5)을 시작하면 페이지가 활성화 됩니다.
활성화 된 페이지의 연락처(Contact) 탭을 클릭하면 'Contact()' 메서드의 'Test()'가 하이라이트 되는데 F5를 한 번 더 눌르면 다음과 같이 시간을 확인할 수 있습니다.
비동기 처리 프로그래밍
비동기 함수 선언의 구조는 다음과 같습니다.
public asycn Task<T> 메서드명() { await 실행문; }
public asycn Task<T> 메서드명() {
await 실행문;
}
'await' 키워드는 'asycn' 키워드와 항상 쌍을 맞춰야합니다.
'T'는 반환값이며 생략 가능합니다.
실제 소요시간을 확인해보겠습니다.
'Controllers\HomeController.cs'에 다음 메소드를 추가합니다.
public async Task Test1Async() {
await Task.Delay(4000);
}
public async Task Test2Async() {
await Task.Delay(6000);
}
Contach() 메서드 비동기적으로 실행하기 위해서 다음과 같이 작성합니다.
public async Task<ActionResult> Contact() {
var test1 = Test1Async(); //중단점 설정
var test2 = Test2Async();
await test1; await test2; return View(); //중단점 설정
}
'Test1Asycn()'메서드는 4초, 'Test2Asycn()'메서드는 6초가 걸리며 비동기적으로 실행하게 된다면 총 6초가 걸립니다.
실제 소요시간을 확인하기 위해 'Contact()' 메서드의 'Test1()'과 'return 0'에 중단점(F9)을 설정한 후 디버깅(F5)을 시작하면 홈페이지가 활성화 됩니다.
활성화 된 홈페이지의 연락처(Contact) 탭을 클릭하면 'Contact()' 메서드의 'Test()'가 하이라이트 되는데 F5를 한 번 더 눌러주면 다음과 같이 시간을 확인할 수 있습니다.
'기타' 카테고리의 다른 글
매개변수(parameter)와 인자, 인수(argument)의 차이 (2) | 2021.06.23 |
---|---|
파이썬(Python), 파이참(Pycharm) 설치 및 연동 (0) | 2020.09.12 |